テーブル行の各要素をレンダリングするモデルの子コレクション (「Vehicles」) の部分ビューを作成しています。したがって、私のモデルは次の形式になります
@model IEnumerable<OrderVehicleViewModel>
モデルバインディングを機能させるには、各要素の名前を次の形式にする必要があります
Vehicles[0].LicenceExpiry
EditorFor を使用すると、名前がフォームで生成されます
item.LicenceExpiry
HtmlAttributes に名前の値を設定すると、無視されているように見えます。これを回避するには、次のことを行う必要があります。
@Html.TextBox("Vehicles[" + i + "].LicenceExpiry", item.LicenceExpiry)
問題は、TextBox がモデルの DisplayFormat 属性に準拠していないため、すべての書式設定が失われることです。つまり、単純なブール プロパティの SelectLists を手動で作成する必要がありますが、EditorFor で使用されるデフォルトのテンプレートがそれを行います。これを達成するための最良の方法は何ですか?