बाध्यकारी [मैं इस अपने आप हल, कारण के लिए मेरा उत्तर देखें]ASP.NET MVC मॉडल एक IList <> पैरामीटर
मैं मुसीबत एक IList < के लिए प्रपत्र मूल्यों हो रही हो रही है> एक नियंत्रक विधि में तर्क ठीक से सेट करें।
मेरे नियंत्रक वर्ग इस तरह दिखता है:
public class ShoppingBasketController : Controller {
public ActionResult Index() {
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(IList<ShoppingBasketItem> items) {
Session["basket"] = items; // for testing
return RedirectToAction("Index");
}
}
public class ShoppingBasketItem {
public int ItemID;
public int ItemQuantity;
}
थोड़ा छंटनी प्रपत्र:
<% using (Html.BeginForm("Add", "ShoppingBasket")) { %>
<% int codeIndex = 0;
foreach (Product product in products) { %>
<%= Html.Hidden("items[" + codeIndex + "].ItemID", product.Id) %>
<%= Html.TextBox("items[" + codeIndex + "].ItemQuantity", "0", new { size = "2"}) %>
<% codeIndex++;
}
} %>
कौन सा तरह मार्कअप का उत्पादन:
<form action="/Basket/Add" method="post">
<input id="items[0]_ItemID" name="items[0].ItemID" type="hidden" value="1" />
<input id="items[0]_ItemQuantity" name="items[0].ItemQuantity" size="2" type="text" value="0" />
<input id="items[1]_ItemID" name="items[1].ItemID" type="hidden" value="2" />
<input id="items[1]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" />
<input id="items[2]_ItemID" name="items[2].ItemID" type="hidden" value="3" />
<input id="items[2]_ItemQuantity" name="items[2].ItemQuantity" size="2" type="text" value="0" />
</form>
मैं प्रपत्र मूल्यों देख लिया है कि जमा हो जाओ और वे सही हैं। ShoppingBasketItem
की सही संख्या भी Session["basket"
] में डाल दी गई है, हालांकि प्रत्येक के ItemID
और ItemQuantity
दोनों शून्य हैं। ऐसा लगता है कि फॉर्म मानों की सूची को सही ढंग से डीकोड करना प्रतीत होता है, लेकिन गुणों को स्वयं नहीं उठाता है।
मैं एमवीसी आरसी 2 का उपयोग कर रहा हूं, और article by Scott Hanselman पर आधारित हूं, मुझे पूरा यकीन है कि मेरा कोड सही है। क्या मैं कुछ भूल रहा हूँ?
वहाँ यूआई टेम्पलेट्स के साथ इस काम करने के लिए एक रास्ता है, एक EditorFor (एम का उपयोग कर => m.product) उत्पादों में प्रत्येक पुनरावृत्ति के लिए? –
धन्यवाद। मैंने यह वास्तव में उपयोगी पाया। :) –