У меня есть следующие, на мой взгляд:Получить ViewData IList назад на постбэка в ASP.NET MVC
<%using (Html.BeginForm()) {%>
<% foreach (var item in Model.Cart) { %>
<div>
<%= Html.TextBox("Cart.Quantity", item.Quantity, new { maxlength = "2" })%>
<%= Html.Hidden("Cart.ItemID", item.ItemID)%>
</div>
<% } %>
<input name="update" type="image" src="image.gif" />
Я тогда этот код в мой контроллер:
public ActionResult Index()
{
CartViewData cartViewData = new CartViewData();
IList<Item> items = ItemManager.GetItems();
cartViewData.Cart = items;
return View("Index", cartViewData);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(CartViewData cartViewData)
{
// cartviewData is null
}
Есть способ захватить список по обратной передаче, чтобы увидеть, изменились ли значения в текстовых полях?
Благодаря
Ниже приведен упрощенный пример, так как это было предложено:
<% for (int i = 0; i < Model.Cart.Count; i++) { %>
<a href="javascript:void(0);" onclick="removeItem(<%= Model.Cart[i].ShoppingCartItemID %>);">Remove</a>
<% } %>
Надеется, что это помогает.
Спасибо! Это сделал трюк. В другом примечании, есть ли лучший способ сделать это? Я не большой поклонник создания «имени» динамически, чтобы добиться этого. – Thomas
Вы можете создавать html-вспомогательные методы для создания элементов ввода с использованием лямбда-выражений и html-вспомогательных методов для создания элементов ввода для коллекции. – eulerfx