पर मॉडल की गुणों को बदलना मैं एएसपी.नेट एमवीसी के साथ खेल रहा हूं और कुछ ऐसी चीज में भाग गया जिसे मैं समझ नहीं सकता।एएसपी.नेट एमवीसी: पोस्टबैक
मान लीजिए मैं है इस तरह एक वस्तु:
public class TestObject
{
public string Name { get; set; }
public int Age { get; set; }
}
और एक दृश्य के पेज (Create.aspx) इस तरह:
:<form action="/Create" method="post">
<p>
<%=Html.TextBox("Name") %>
</p>
<p>
<%=Html.TextBox("Age")%>
</p>
</form>
और मेरे नियंत्रक पर मैं इन कार्यों है
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Create()
{
return View(new TestObject { Name = "DefaultName", Age = 10 });
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(TestObject o)
{
o.Name = "ChangedNameToSomethingElse";
o.Age = 15;
return View(o);
}
Html.TextBox()
विधि हमेशा डिफ़ॉल्ट मानों के साथ टेक्स्टबॉक्स को जेनरेट करता है, यहां तक कि pos के बाद भी टैब, जहां वस्तु को इसके मूल्यों पर विभिन्न गुणों के साथ वापस पारित किया जाता है। अब, दिया गया है, मैं एक असली दुनिया के उदाहरण के बारे में नहीं सोच सकता हूं कि मैं ऐसा क्यों करना चाहता हूं लेकिन मुझे अभी भी समझ में नहीं आ रहा है कि मैं हमेशा मॉडल के मूल्यों के साथ क्यों बना रहता हूं जो टेक्स्ट बनाएं AcceptVerbs(HttpVerbs.Get)
विशेषता के साथ।
नोट: मैंने Html.TextBox("Name", Model.Name)
को आजमाया है लेकिन परिणाम अभी भी वही है। और मैंने सत्यापित किया कि AcceptVerbs(HttpVerbs.Post)
के साथ क्रिया बनाएं वास्तव में दृश्य में व्यूडेटा के माध्यम से एक मान पास करके चलाती है। इसके अलावा, जब मैं <%=Model.Name %>
के साथ मान आउटपुट करता हूं, लेकिन फिर भी, टेक्स्टबॉक्स पर नहीं, तो udated मान प्रदर्शित होता है।
क्या कुछ स्पष्ट है जो मुझे याद आ रही है, या क्या इस व्यवहार के पीछे कोई तर्क है?
आप इसी तरह के प्रश्न के उत्तर में भी रुचि रखते हैं - http://stackoverflow.com/questions/953330/does-html-textbox-uses-request-params-instead-of-model/954524#954524 –