मैं अपनी कार्रवाई को जेसनआरसल्ट लौटने की कोशिश कर रहा हूं जहां इसकी सभी संपत्ति ऊंट में हैं।एमवीसी जेसनआरसल्ट ऊंटकेस सीरियलाइजेशन
public class MyModel
{
public int SomeInteger { get; set; }
public string SomeString { get; set; }
}
और एक सरल नियंत्रक कार्रवाई:
public JsonResult Index()
{
MyModel model = new MyModel();
model.SomeInteger = 1;
model.SomeString = "SomeString";
return Json(model, JsonRequestBehavior.AllowGet);
}
कॉलिंग इस कार्रवाई विधि अब एक JsonResult निम्न डेटा युक्त रिटर्न:
{"SomeInteger":1,"SomeString":"SomeString"}
मैं एक बस मॉडल है मेरे उपयोग के लिए मुझे कार्रवाई को कैमेलकेस में डेटा वापस करने की आवश्यकता है, किसी भी तरह यह:
{"someInteger":1,"someString":"SomeString"}
क्या ऐसा करने का कोई शानदार तरीका है?
मैं यहां के आसपास के संभावित समाधानों को देख रहा था और MVC3 JSON Serialization: How to control the property names? पाया जहां उन्होंने मॉडल की हर संपत्ति के लिए डेटामेम्बर परिभाषाएं सेट कीं, लेकिन मैं वास्तव में ऐसा नहीं करना चाहता हूं।
इसके अलावा मुझे एक लिंक मिला जहां वे कहते हैं कि इस तरह के मुद्दे को हल करना संभव है: http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization#json_camelcasing। इसे कहते हैं:
ऊंट आवरण के साथ JSON संपत्ति के नाम लिखने के लिए, अपने डेटा मॉडल को परिवर्तित किए बिना, serializer पर CamelCasePropertyNamesContractResolver सेट: इस ब्लॉग http://frankapi.wordpress.com/2012/09/09/going-camelcase-in-asp-net-mvc-web-api/ पर
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
एक प्रविष्टि भी इस समाधान और राज्यों mentiones आप इस समस्या को ठीक करने के लिए इसे आसानी से RouteConfig.RegisterRoutes पर जोड़ सकते हैं। मैंने कोशिश की, लेकिन मैं इसे काम नहीं कर सका।
क्या आपके पास कोई विचार है कि मैं कुछ गलत कर रहा था?
"मैंने कोशिश की, लेकिन मैं इसे काम नहीं कर सका" का क्या अर्थ है। – nemesv
मैंने उस कोड स्निपेट को रूटकोनफिग.रेजिस्टर रूट्स विधि में जोड़ा लेकिन ऐसा कोई प्रभाव नहीं पड़ा क्योंकि जेसनआरसल्ट में अभी भी वही डेटा था। –
एफवाईआई, 'कैमेलकेसप्रॉपर्टी नामकंट्रैक्ट रिसेल्वर' केवल वेबएपीआई नियंत्रकों के साथ काम करता है (नियंत्रक जो 'एपीकंट्रोलर' का विस्तार करते हैं)। – danludwig