提交带有其他路由参数的实体集合
本文关键字:实体 集合 参数 路由 其他 提交 | 更新日期: 2023-09-27 18:06:41
我有一个强类型视图
@model IEnumerable<MagazineIndex>
表示用户输入的对象数组。还有一个下拉菜单:
@Html.DropDownList("DropDownName",
(List<SelectListItem>)ViewData["magazines"],
new { id = "DropDownName" })
当我提交表单时,我得到这个错误:
没有'IEnumerable'类型的ViewData项具有'DropDownName'键。
控制器是这样的:
public ActionResult CreateContent(IList<MagazineIndex> indexes,
string DropDownName)
我必须如何纠正绑定值?
确保在您的HttpPost操作中填充ViewData["magazines"]
的方式与您在Get操作中所做的相同:
[HttpPost]
public ActionResult CreateContent(IList<MagazineIndex> indexes, string DropDownName)
{
...
ViewData["magazines"] = ... same stuff as in your GET action
return View(indexes);
}
只有当您打算在POST操作中重新显示相同的视图时才需要这样做。如果你重定向,你就不需要它了。你需要它的原因是显而易见的。你的视图需要呈现一个DropDown控件,这取决于它的值