次のような Razor ビューがあります。
@model Namespace.Namespace.SupplierInvoiceMatchingVm
@using(Html.BeginForm("MatchLines", "PaymentTransaction"))
{
<table class="dataTable" style="width: 95%; margin: 0px auto;">
<tr>
<th></th>
<th>PO Line</th>
<th>Description</th>
</tr>
@for (var i = 0; i < Model.Lines.Count; i++)
{
<tr>
<td>@Html.CheckBoxFor(x => x.Lines[i].Selected)</td>
<td>@Html.DisplayFor(x =>x.Lines[i].LineRef) @Html.HiddenFor(x => x.Lines[i].LineRef)</td>
<td>@Html.DisplayFor(x =>x.Lines[i].Description) @Html.HiddenFor(x => x.Lines[i].Description)</td>
</tr>
}
</table>
<input type="submit" value="Submit"/>
}
オブジェクトLines
のリストはどこにあり、メソッドのシグネチャは次のようになりますSupplierInvoiceMatchingDto
MatchLines
public ActionResult MatchLines(IEnumerable<SupplierInvoiceMatchingDto> list)
このビューで送信ボタンを押すと、リストがコントローラーに渡されnull
ます。
ただし、 を に変更し、代わりにすべてのテーブル行をに変更するModel
と、すべての情報が正常に投稿されます。List<SupplierInvoiceMatchingDto>
x => x[i].Whatever
私の質問は次のとおりです。このビューでモデルから他のものが必要なため、モデルを維持しながら、リストをコントローラーに投稿するにはどうすればよいですSupplierInvoiceMatchingVm
か (簡潔にするために取り出しました)。
注: 私が取り出したいくつかのユーザー入力フィールドがあります。それは、与えられたのと同じデータを投稿するだけではありません。