我正在为我的模型的子集合('Vehicles')编写部分视图,该视图呈现表格行中的每个元素。因此,我的模型是
@model IEnumerable<OrderVehicleViewModel>
为了使模型绑定起作用,我需要每个元素的名称都在表单中
Vehicles[0].LicenceExpiry
如果我使用 EditorFor,那么名称会以形式生成
item.LicenceExpiry
如果我使用名称值设置 HtmlAttributes 它似乎被忽略了,要解决这个问题,我必须做
@Html.TextBox("Vehicles[" + i + "].LicenceExpiry", item.LicenceExpiry)
问题是,我丢失了所有格式,因为 TextBox 不符合我模型上的 DisplayFormat 属性,这意味着我必须为简单的布尔属性手动构建 SelectLists,而 EditorFor 使用的默认模板为我完成了它。实现这一目标的最佳方法是什么?