我有一个ASP.NET MVC应用程序,显示了一系列项目。在我的视图页面中,我循环遍历这些项目,并使用部分视图来呈现每个项目,如下所示:
@foreach(var item in Model.items)
{
<li>
@Html.Partial("ItemView", item)
</li>
}
在项目视图中,我会用一个包含“删除”按钮的表单来包装每个项目,如下所示:
@using(Html.BeginForm(...))
{
@Html.HiddenFor(m=>m.Id)
<label>@Model.Name (@Model.Id)</label>
<input type="submit" value="Delete"/>
}
项目已正确渲染,生成的页面展示了所有项目的名称和ID。编辑:与我之前写的相反,@Hidden也会发生同样的情况。
此外,这只会在表单第二次呈现时发生(即在点击删除按钮后),第一次一切正常。我的操作方法如下:
public ActionResult AllItems()
{
var model = new AllItemsModel();
return PartialView(model);
}
public ActionResult Delete(DeleteModel model)
{
.... Perform the delete ...
return PartialView("AllItems", new AllItemsModel());
}
为什么会发生这种情况?