का उपयोग कर नियंत्रक को पैरामीटर पास करें मैंने एक दृश्य और नियंत्रक बनाया है, नियंत्रक मैं कुछ खोज परिणामों को वापस लौटना चाहता हूं। मैं का उपयोग कर नियंत्रक बोल रहा हूँ jQueryjquery AJAX
<input type="text" id="caption" />
<a href="#" id="search">Search</a>
<script>
$("#search").click(function() {
alert('called');
var p = { Data: $('#search').val() };
$.ajax({
url: '/Ingredients/Search',
type: "POST",
data: JSON.stringify(p),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
error: function() {
alert("error");
}
});
});
मेरे नियंत्रक इस
[HttpPost]
public ActionResult Search(string input)
{
var result = _db.Ingredients.Where(i => i.IngredientName == input);
return new JsonResult() {Data = new {name="Hello There"}};
}
मेरे समस्या मुझे यकीन है कि कैसे नियंत्रक में मेरी jQuery कॉल से varible पाने के लिए नहीं कर रहा हूँ की तरह लग रहा है, मैं एक डाल दिया है नियंत्रक पर ब्रेकपॉइंट और इसकी हिट हालांकि इनपुट स्ट्रिंग हमेशा शून्य है।
मैंने क्या गलत किया है?
सही। व्याख्या करने के लिए: यदि सी # में आपका चर और JSON तत्व में उपयोग किया गया फ़ील्ड आपके पास एक ही नाम है, तो वे स्वचालित रूप से एक-दूसरे से बंधे रहेंगे। तो यदि आप JSON प्रॉपर्टी को '{captionvalue: $ ('# caption') में बदल देंगे। Val()} ', आपको अपने फ़ंक्शन में वैरिएबल का नाम बदलकर' कैप्शनवल्यू 'करना होगा। बस कुछ स्पष्टीकरण ताकि आप समझ सकें कि यह क्यों काम करता है :-) – Flater