我在使用 HTML 帮助程序 BeginCollectionItem
时遇到问题。它似乎将项目绑定(bind)到 View ,但不会传播更改。
我有一个局部 View ,绑定(bind)到它的模型是一个 IEnumerable
。下面是一个片段。
<tbody>
@foreach (var entry in Model) {
<tr>
@using (Html.BeginCollectionItem("EditedEntries")) {
<td>@entry.Storeid</td>
<td>@entry.district</td>
<td>@Html.EditorFor(x => entry.AdjHrs)</td>
}
</tr>
}
</tbody>
如果我删除 foreach
它会起作用,但是我需要使用 foreach
因为集合从 Ajax 调用返回到部分 View 以及表及其成员。
最佳答案
BeginCollectionItem
设计用于局部 View 。为您的模型创建一个(我假设其名为 MyModel
,您将部分命名为 "_MyModel.cshtml"
)
@model MyModel
<tr>
@using (Html.BeginCollectionItem("EditedEntries"))
{
<td>@Html.DisplayFor(m => m.Storeid)</td>
<td>@Html.DisplayFor(m => m.district)</td>
<td>@Html.EditorFor(m => m.AdjHrs)</td>
}
</tr>
然后在您的其他部分中,将 foreach
循环替换为
<tbody>
@foreach (var entry in Model)
{
@Html.Partial("_MyModel", entry)
}
</tbody>
关于c# - ASP.NET MVC BeginCollectionItem 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820416/