C# 如何在表单中呈现列表项?
我有一个小问题,似乎无法使用MVC4可靠地呈现表单中的列表项。下面是出现问题的一小段代码:C# 如何在表单中呈现列表项?,c#,asp.net-mvc,forms,asp.net-mvc-4,razor,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)
...
@{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>
...
。。。
@{int count=Model.Details.count;}
@for(int i=0;iModel.Details[i].WidthFeet)
@EditorFor(x=>Model.Details[i].WidthInches)
...
基本上,我正在进行循环,并在进行过程中添加行。我已经手动完成了这个过程,我已经确认使用了正确的索引/数据,并且我已经确认HTML在名称方面是正确的(正确的索引,等等)尽管有这些事实,但我遇到的问题是,所有输入框中的值逐行都是相同的。基本上,如果我更改其中一个字段,当表单再次呈现时,该值将显示在所有其他行中
有人能告诉我发生了什么事,或者我如何解决这个问题吗?我想你应该使用foreach:
@foreach (var Item in Model.Details)
{
@Html.EditorFor(x => Item.WidthFeet)
@Html.EditorFor(x => Item.WidthInches)
}
您好,您能试试下面的吗?它对我有效。如果它仍然加载相同的数据,请查看您的模型数据是否正在提取重复数据
**@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>
}**
**@for(int count=0;countm.Details[count].WidthFeet)
@Html.EditorFor(m=>m.Details[count].WidthInches)
}**
尝试替换编辑器for to textbox for不确定这是否与问题有关,但是x=>Model.Details[i]
看起来有点奇怪。不会x=>x.Details[i]
更自然?@Andrei绝对没有关系。两种形式都一样自然/相同。如果这样做,索引将不正确,您将无法提交数据。