ASP.NET MVCモデルの結合は、IList<>パラメータ
-
19-08-2019 - |
質問
[Iでは、この私は、私の回答の原因]
私の良さを知ってもらい、形の値は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
sもう Session["basket"
]しかし、両方の ItemID
や ItemQuantity
それぞれのゼロになります。定されていたことを踏まえれば正しく復号のリスト形式の値が持ち直しの物件です。
を使用していMVC RC2に基づき、 記事によるスコットHanselman またまた自分のコードは正しい。私何かが足りない?
解決
液
ダウンロード後、MVC源できないもののいのではなく、思考が必要です何かをタイプしたように連結します。のでしょうか、価値観ているメンバ変数と特性、回数です。これは、モデルのバインダー用反射プロパティを設定するか発見を通じて呼び出 TypeDescriptor.GetProperties(Type)
.
更新価値をこのクラスを解決す(営業時間終了後に打本壁い!!):
public class ShoppingBasketItem {
public int ItemID { get; set; }
public int ItemQuantity { get; set; }
}
所属していません StackOverflow