【发布时间】:2011-12-14 15:45:04
【问题描述】:
有趣的是,尽管从服务器正确接收数据,但我的 MVC3 razor 表单仍会在 foreach 代码块中呈现重复值。这是我在 MVC3 Razor 中的简单形式...
-- 我的 .cshtml 页面示例
@model List<Category>
@using (@Html.BeginForm("Save", "Categories", FormMethod.Post))
{
foreach (Category cat in Model)
{
<span>Test: @cat.CategoryName</span>
<span>Actual: @Html.TextBoxFor(model => cat.CategoryName)</span>
@Html.HiddenFor(model => cat.ID)
<p>---</p>
}
<input type="submit" value="Save" name="btnSaveCategory" id="btnSaveCategory" />
}
我的控制器动作看起来像这样 -
[HttpPost]
public ActionResult Save(ViewModel.CategoryForm cat)
{
... save the data based on posted "cat" values (I correctly receive them here)
List<Category> cL = ... populate category list here
return View(cL);
}
上面的保存操作会返回带有正确数据的模型。
提交上述表单后,我希望在完成操作后看到类似于以下类别的值...
Test: Category1, Actual:Category1
Test: Category2, Actual:Category2
Test: Category3, Actual:Category3
Test: Category4, Actual:Category4
但是@Html.TextBoxFor 复制了列表中的第一个值。发布表格后,我看到如下回复。即使我从服务器获得了正确的数据,“实际”值也会重复。
Test: Category1, Actual:Category1
Test: Category2, Actual:Category1
Test: Category3, Actual:Category1
Test: Category4, Actual:Category1
我做错了什么?任何帮助将不胜感激。
【问题讨论】:
标签: asp.net-mvc-3 razor