我有一个模型,我想有一个批量更新页面,但我遇到了麻烦。
我的ViewModel:
public class ApproveView
{
public IEnumerable<MyObject> ObjectList { get; set; }
}
在我看来,我有:
foreach (var item in Model.ObjectList)
{
<div>
<table class="form" width="100%">
<tr>
<td>@Html.LabelFor(model => item.Accurate)<br />
@Html.RadioButtonFor(model => item.Accurate, true) Yes
@Html.RadioButtonFor(model => item.Accurate, false) No
@Html.ValidationMessageFor(model => item.Accurate)
</td>
<td>
@Html.LabelFor(model => item.Comments)<br />
@Html.TextAreaFor(model => item.Comments)<br />
@Html.ValidationMessageFor(model => item.Comments)
</td>
</tr>
</table>
@Html.HiddenFor(model => item.ID)
@Html.HiddenFor(model => item.CreatedOn)
@Html.HiddenFor(model => item.CreatedBy)
@Html.HiddenFor(model => item.ModifiedOn)
@Html.HiddenFor(model => item.ModifiedBy)
<hr />
}
这会遍历我的对象并打印表单。麻烦的是,所有相同类型的字段都具有相同的名称。因此,例如,我的所有单选按钮都已连接,我只能选择一个。
如何为每个字段创建唯一且与该对象关联的名称?我是在正确的轨道上还是有更好的方法来做到这一点?
答案 0 :(得分:4)
答案 1 :(得分:0)
您也可以手动执行此操作:
@{var count = 0;}
@foreach (var item in Model.ObjectList){
<div>
<table class="form">
<tr>
<td>@Html.Label("Accurate" + count, item.Accurate)<br />
@Html.RadioButton("AccurateTrue" + count, true) Yes
@Html.RadioButton("AccurateFalse" + count, false) No
@Html.ValidationMessage("ValidationAccurate" + count, item.Accurate)
</td>
<td>
@Html.Label("CommentsLabel" + count, item.Comments)<br />
@Html.TextArea("Comments" + count, item.Comments)<br />
@Html.ValidationMessage("ValidationComment" + count, item.Comments)
</td>
</tr>
</table>
@Html.Hidden("ID" + count, item.ID)
@Html.Hidden("CreatedOn" + count, item.CreatedOn)
@Html.Hidden("CreatedBy" + count, item.CreatedBy)
@Html.Hidden("ModifiedOn" + count, item.ModifiedOn)
@Html.Hidden("ModifiedBy" + count, item.ModifiedBy)
<hr />
@count++;
@}