如何在表单中呈现列表项?

时间:2013-10-23 14:05:21

标签: c# asp.net-mvc forms asp.net-mvc-4 razor

我有一个小问题,我似乎无法使用MVC4在表单内可靠地呈现列表项。这是一小段代码,问题就出现了:

  ...
  @{int count = Model.Details.Count;}
  @for (int i = 0; i < count; i++)
  {
    <tr class="added-item">
      <td>
        @Html.EditorFor(x => Model.Details[i].WidthFeet)
        @Html.EditorFor(x => Model.Details[i].WidthInches)
      </td>
  ...

基本上我正在循环,并在我去的时候添加行。我已经手动完成了这个过程,并且我已经确认正在使用正确的索引/数据,并且我已经确认HTML是正确的,就名称而言(正确索引等)尽管有这些事实,问题我所拥有的是所有输入框中的值在逐行的基础上变得相同。基本上,如果我在一个字段中更改字段,那么当表单再次呈现时,该值将显示在所有其他行中。

有谁能告诉我发生了什么,或者我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我认为你应该使用foreach:

@foreach (var Item in Model.Details)
{
    @Html.EditorFor(x => Item.WidthFeet)
    @Html.EditorFor(x => Item.WidthInches)
}

答案 1 :(得分:0)

你可以试试下面吗?它对我有用..如果它仍然加载相同的数据,请查看您的模型数据是否正在提取重复数据。

**@for (int count = 0; count < Model.Details.Count; count++)
            {
            <tr class="added-item">
                <td>
            @Html.EditorFor(m => m.Details[count].WidthFeet)
            @Html.EditorFor(m => m.Details[count].WidthInches)
                </td>
            </tr>
            }**