2015-01-27 16 views
9

के साथ AngularJs नियंत्रक से एमवीसी कंट्रोलर एक्शन को कॉल नहीं कर सकता है मैं Angularjs नियंत्रक $ http.get() से अपने एमवीसी कंट्रोलर एक्शन को कॉल करने का प्रयास कर रहा हूं। कृपया कुछ समाधान प्रदान करें।पैरामीटर

नियंत्रक कार्रवाई:

[HttpGet] 
public string CallMe(int number,string name) 
{ 
    return "Welcome " + name +" to Angular Js " + number + " times."; 
} 

कोणीय जे एस नियंत्रक

app.controller("StoreController", ["$http", function ($http) {   
    $http.get("/Home/CallMe", { number: 4, name: "angular"  }).success(function (data) { 
     console.log(data); 
    }).error(function (error) {   
     console.log(error); 
    }); 
}]); 

इसके अलावा, किसी को भी सीखने के लिए संबंधित सामग्री को निर्दिष्ट कर सकते हैं?

अग्रिम धन्यवाद।

+0

कृपया त्रुटि के विवरण है कि आप हो रही है जोड़ने के लिए प्रदान करता है। –

+1

सीखने के लिए संबंधित सामग्री: google.com – user3036342

+0

@ user3036342 धन्यवाद .. लेकिन मैंने इसे पहले से ही गुगल किया है। यह एक ही समस्या के साथ मेरा दूसरा दिन है। –

उत्तर

12

आप $http#get विधि का उपयोग कर रहे हैं।

get(url, [config]); 

Param Type  Details 
url  string Relative or absolute URL specifying the destination of the request 

config Object Optional configuration object 
(optional) 

गुजर मानकों angular.http के लिए एक विकल्प यह params

$http({ 
    url: "/Home/CallMe", 
    method: "GET", 
    params: {number: 4, name: "angular"} 
}); 
+0

धन्यवाद। यही वह है जिसे मैं ढूंढ रहा था। क्या # http # प्राप्त करने के अलावा इसे प्राप्त करने का कोई और तरीका है? –

+1

@ अजय वर्मा: आपका स्वागत है। हां आप 'POST' विधि का भी उपयोग कर सकते हैं। बस विधि से 'पैराम्स' से 'डेटा' तक और विधि से बदलने की आवश्यकता है और आप कर चुके हैं। मुझे 'सी #' पता नहीं है –

3

आप विधि post पैरामीटर के साथ उपयोग करने का प्रयास कर रहे हैं। get केवल एक यूआरएल पैरामीटर लेता है, और एक वैकल्पिक विन्यास एक। documentation पर यहां एक नज़र डालें।

यूआरएल के लिए अपने पैरामीटर संलग्न करना का प्रयास करें:

app.controller("StoreController", ["$http", function ($http) {   
    $http.get("/Home/CallMe?number=4&name=angular").success(function (data) { 
     console.log(data); 
    }).error(function (error) {   
     console.log(error); 
    }); 
}]); 
+0

यह काम किया। लेकिन फिर से कुछ सवाल उठते हैं: 1. क्या होगा यदि मैं नियंत्रक को एकाधिक डेटा भेजना चाहता हूं? 2. अगर यह पोस्ट है; फिर यदि एमवीसी नियंत्रक में एकल पैरामीटर की आवश्यकता है (केवल स्ट्रिंग नाम के साथ)। एमवीसी नियंत्रक शून्य मूल्य के साथ बुलाया जाता है। कैसे? [HttpGet] के साथ क्या हुआ? जैसे 'सार्वजनिक स्ट्रिंग CallMe (स्ट्रिंग नाम) {} ' –

+0

@AjayVerma 1) एकाधिक डेटा या तो इस तरह होना चाहिए, या कक्षा में लपेटा जाना चाहिए और पोस्ट अनुरोध में उपयोग किया जाना चाहिए। 2) स्ट्रिंग विशेष रूप से किसी कारण से पदों में किसी प्रकार की समस्या का कारण बनती है। आप या तो इसे कक्षा में लपेट सकते हैं, या आप 'सार्वजनिक स्ट्रिंग कॉलमे ([FromBody] स्ट्रिंग नाम) का उपयोग करने का प्रयास कर सकते हैं, यदि आप वेबएपीआई का उपयोग कर रहे हैं, तो कभी-कभी –

+0

धन्यवाद .. यह भी काम करता है .. –