जब आप अपने नियंत्रक पर एक कार्रवाई विधि के लिए ajax के माध्यम से फ़ॉर्म पोस्ट, ModelBinder वास्तुकला में लात मारता है आप के लिए व्यापार वस्तुओं में तैनात प्रपत्र मूल्यों पार्स करने के लिए। आप कुछ अलग तरीकों से मॉडलबाइंडिंग का लाभ उठा सकते हैं।
public ActionResult MyAction(MyObject obj)
{
}
उपरोक्त उदाहरण में, modelbinder परोक्ष जानकारी अनुरोध में प्राप्त से एक MyObject
बनाने के लिए कोशिश करता है।
public ActionResult MyAction(FormCollection stuff)
{
MyObject obj = new MyObject();
TryUpdateModel(obj);
}
यहां हम स्पष्ट रूप से पोस्ट किए गए फॉर्म डेटा को उस ऑब्जेक्ट में बांधने की कोशिश कर रहे हैं जिसे हमने बनाया है। मॉडलबिंडर पोस्ट मानों को ऑब्जेक्ट के गुणों से मिलान करने का प्रयास करेगा।
इनमें से किसी भी मामले में, आप ModelState
ऑब्जेक्ट से यह पूछने के लिए क्वेरी कर सकते हैं कि ऑब्जेक्ट पर पोस्ट किए गए मानों के अनुवाद के दौरान कोई त्रुटि हुई थी या नहीं।
एक परिचय बंधन मॉडल करने के लिए के लिए, see here।
सूचियों और शब्दकोशों,
see Phil Haack's post करने के लिए उन्नत modelbinding लिए
। अपने व्यवस्थापक नियंत्रक पर
var person = {};
person["First"] = $("#FirstName").val();
person["Last"] = $("#LastName").val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Admin/AddPerson",
data: JSON.stringify(person),
dataType: "json",
success: function(result) {
},
error: function(result) {
}
});
और उसके बाद:
क्या तरीकों एक पैरामीटर की तुलना में अधिक है के बारे में? –
प्रत्येक पैरामीटर के लिए, एमवीसी किसी भी फॉर्म डेटा को पैरामीटर (यदि यह एक साधारण प्रकार है), या उस पैरामीटर पर किसी भी गुण (यदि यह एक जटिल प्रकार है) को बाध्य करने का प्रयास करेगा। तो यदि आपके पास दो पैरामीटर हैं, प्रत्येक को पहली संपत्ति के साथ, तो दोनों को सर्वर पर पोस्ट की गई "पहली" कुंजी में निर्दिष्ट मान प्राप्त करना चाहिए। एक विशिष्ट नामकरण वाक्यविन्यास भी है जिसका उपयोग आप कर सकते हैं यदि आप इसे केवल एक जटिल प्रकार से बांधना चाहते हैं। – Tejs
मेरे पास अजीब परिणाम हैं जहां यह एफएफ में काम करता है लेकिन कोड पैरामीटर के पीछे कोड में आईई एक ऑब्जेक्ट प्राप्त करता है जिसमें सभी फ़ील्ड शून्य हो जाते हैं? –