मैं अपने एएसपी.नेट एमवीसी 3 नियंत्रक एक्शन विधि में कुछ JSON डेटा भेजने की कोशिश कर रहा हूं, लेकिन इससे कोई फर्क नहीं पड़ता कि मैं क्या करता हूं।एएसपी.नेट एमवीसी एक नियंत्रक कार्रवाई में JSON डेटा भेज रहा है
POST http://localhost:51492/Home/GetData HTTP/1.1
Host: localhost:51492
Connection: keep-alive
Content-Length: 171
Origin: http://localhost:51492
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
Content-Type: application/json; charset=UTF-8;
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://localhost:51492/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
{"Filters":[{"Field":3,"Operator":0,"Values":["30.01.2012.","30.01.2012."]},{"Field":2,"Operator":0,"Values":["-1"]},{"Field":0,"Operator":0,"Values":["some-string"]}]}
मेरे ग # कोड:
$.ajax({
url: '/Home/GetData',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8;",
data: JSON.stringify(filters_data),
success: function (data) {
alert(data);
}
});
फ़िडलर इस तरह अनुरोध दिखाता है:
यहाँ मेरी ajax कॉल है (यह json2.js से JSON.stringify विधि का उपयोग करता)
[HttpPost]
public string GetData(QueryFilters filters)
{
return "Ho ho ho and a bottle of rum.";
}
[Serializable]
public enum Fields
{
A,
B,
C,
D
}
[Serializable]
public enum FilterOperator
{
Is,
Between,
GreaterOrEqual,
}
[Serializable]
public class QueryFilter
{
public Fields Field { get; set; }
public FilterOperator Operator { get; set; }
public List<string> Values { get; set; }
}
[Serializable]
public class QueryFilters
{
public List<QueryFilter> Filters { get; set; }
}
मैंने global.asax.cs की Application_Start() विधि में निम्न पंक्ति जोड़ दी है:
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
एक्शन विधि 'गेटडाटा' में ब्रेकपॉइंट हिट हो गया है, लेकिन फ़िल्टर संपत्ति का मूल्य शून्य है। कोई विचार?
एक और नोट: मैंने एक बहुत ही सरल वस्तु पारित करने का प्रयास किया है: व्यक्ति - गुण स्ट्रिंग नाम और int आयु, उसी परिणाम के साथ - ऐसा लगता है जैसे स्वचालित मॉडल बाध्यकारी मेरे लिए काम नहीं कर रहा है लेकिन मुझे नहीं पता इसे कैसे जांचें।
+1 अच्छी तरह से देखा गया। मुझे उस चीज़ को नहीं मिला जो मैंने अपने उत्तर में संदर्भित किया था, इसलिए इसे हटा दिया है ... –
बहुत बहुत धन्यवाद! मैं समझ नहीं पा रहा हूं कि मुझे कितना निराशा हुई, एक बिलियन अलग-अलग चीजों की कोशिश की और यह एक साधारण नामकरण मुद्दा साबित हुआ। – skali
सभी तरह से बहुत बढ़िया, मैं इसके लिए दूर और करीब देख रहा हूं, लेकिन निश्चित रूप से, यह ढेर पर है! –