आम आदमी के शब्दों में, UpdateModel()
क्या करता है, साथ ही साथ TryUpdateModel()
? मुझे लगता है कि (एसओ या वेब पर) वास्तव में क्या करता है (स्पष्ट शब्दों में), किसी भी व्यक्ति को इसका उपयोग करने में समस्याएं हैं, इस बारे में कोई स्पष्ट स्पष्टीकरण नहीं मिल रहा है।UpdateModel() क्या करता है?
विजुअलस्टूडियो का इंटेलिजेंस मेरी मदद नहीं कर रहा है। कारण है कि मैं पूछना है, क्योंकि, चलो कहते हैं, अगर मैं अपने नियंत्रक में इस है:
[HttpPost]
public ActionResult Index(UserViewModel vm, FormCollection form)
{
var statesCheckBoxes = form["StatesList"];
vm.BA.StatesTraveledTo = statesCheckBoxes.Split(',').ToList<string>();
return View(vm);
}
मैं पहले से ही vm.BA.StatesTraveledTo
की स्थापना करके अपने मॉडल को अद्यतन करने के लिए नहीं कर रहे हैं? मुझे अपडेटमोडेल चलाने की आवश्यकता क्यों है? इसके अलावा, जब मैं वास्तव में करने की कोशिश निम्नलिखित:
[HttpPost]
public ActionResult Index(UserViewModel vm, FormCollection form)
{
var statesCheckBoxes = form["StatesList"];
vm.BA.StatesTraveledTo = statesCheckBoxes.Split(',').ToList<string>();
UpdateModel(vm); // IS THIS REDUNDANT TO THE PREVIOUS LINE?
return View(vm);
}
कुछ भी नहीं है कि में होना है जब मैं ModelState का मूल्य का निरीक्षण (के बाद मैं UpdateModel() चलाने), मैं कुछ भी नहीं दिख रहा है कि कुछ भी यह दर्शाता है लगता है बदल गया है। मुझे मॉडलस्टेट शब्दकोश में एक नई कुंजी नहीं दिखाई दे रही है।
वास्तव में उलझन में। धन्यवाद!
संपादित करें:
पोस्ट करना ViewModel और मॉडल कक्षाओं के लिए स्रोत कोड:
public class UserViewModel
{
public BankAccount BA { get; set; }
}
public class BankAccount
{
public Person User { get; set; }
public List<string> StatesTraveledTo { get; set; }
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
यहाँ यह के लिए स्रोत कोड है: http://aspnet.codeplex.com/SourceControl/changeset/view/72551#266451 यह बहुत सरल ,, बस एक ModelBindingContext बनाता है और यह भी बांधता –
है, यह कुछ हद तक है दृश्य में एक क्रिया में इनपुट के रूप में प्राप्त होने वाली वही वस्तु को पार करने के लिए दुर्लभ, ऐसा होता है लेकिन यह दुर्लभ है और यह उन उपयोगों में से एक जैसा प्रतीत नहीं होता है। आम तौर पर आप एक ऑब्जेक्ट इनपुट के रूप में लेते हैं जो पोस्ट किए गए डेटा का प्रतिनिधित्व करता है और फिर –
दृश्य के लिए एक अलग मॉडल बनाएं। मॉडल को वापस देखने के कारण मैं सत्यापन उद्देश्यों के लिए है। इसलिए यदि सत्यापन विफल रहता है, तो मैं चाहता हूं कि मॉडल और उसके मान दृश्य में पारित किए जाएं ताकि फ़ॉर्म फ़ील्ड को दोबारा तैयार किया जा सके और एक त्रुटि संदेश दिखाया गया हो। क्षमा करें, मुझे लगता है कि मैंने दिखाए गए कोड के साथ, यह एक व्यावहारिक उदाहरण की तरह नहीं लग सकता है। – SaltProgrammer