我有一个强类型视图
@model IEnumerable<MagazineIndex>
表示用户输入的对象数组。我也有一个下拉列表:
@Html.DropDownList("DropDownName",
(List<SelectListItem>)ViewData["magazines"],
new { id = "DropDownName" })
当我提交表单时,我收到此错误:
没有类型为'IEnumerable'的ViewData项具有键'DropDownName'。
我的控制器是这样的:
public ActionResult CreateContent(IList<MagazineIndex> indexes,
string DropDownName)
我如何更正绑定值?
答案 0 :(得分:1)
请确保在您的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控件,该控件取决于其值。