をコントローラへのビューの要素のリストを送信します材料を表す。テーブルは次のようになります。私が欲しいは、私はこのモデルを持っている
、例えば、テーブルの最初の2行を埋めるために、コントローラに値を送信します。
私はこれをやろうとしましたが、材料リストはコントローラ内でヌルです。
@model CarListViewModel
@{
ViewData["Title"] = "Registar material";
}
<div class="material-registration-wrapper">
<h2 class="title">Registo materiais - Carro</h2>
@using (Html.BeginForm("MaterialDummy", "Material", FormMethod.Post, new { id = "materialRegistrationForm" }))
{
<table class="material-registration-insertion">
<tr>
<th>Material</th>
<th>Lote</th>
<th>Quantidade</th>
</tr>
<tr>
@{List<Material> mList = new List<Material>();}
@{Material m1 = new Material();}
<td>@Html.TextBoxFor(model => m1.name, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m1.lot, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m1.quantity, null, new { type = "text" })</td>
</tr>
<tr>
@{Material m2 = new Material();}
<td>@Html.TextBoxFor(model => m2.name, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m2.lot, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m2.quantity, null, new { type = "text" })</td>
</tr>
<tr>
@{Material m3 = new Material();}
<td>@Html.TextBoxFor(model => m3.name, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m3.lot, null, new { type = "text" })</td>
<td>@Html.TextBoxFor(model => m3.quantity, null, new { type = "text" })</td>
</tr>
@{ mList.Add(m1); }
@{ mList.Add(m2); }
@{ mList.Add(m3); }
@Html.HiddenFor(model => mList, Model.materials)
</table>
<table class="submit-table">
<tr>
<td>
<div class="submit-table">
<input type="submit" value="Submeter" class="submit-button" />-->
</div>
</td>
</tr>
</table>
}
</div>
私が間違ってやっていること、またはこれを行うためのより良い方法は誰にも分かりますか?
MVCのリストのModelBindingに関する情報がたくさんあります。これを見てみましょう:https://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ –
コレクションに隠された要素を保持することに意味はありません。入力名が正しい限り、モデルバインダーはそれをパラメーターにマップできます。ですから、 'Materials [0] .name'、' Materials [1] .name'という形式で名前をつけて入力要素を構築してください。 UIのMaterialsコレクションの行をどのように作成していますか? – Shyju
あなたはビューの意味ですか?私はいくつかの行といくつかの列を持つHTMLテーブルを持っています。私はその質問にコードを掲載した。 – undisp