发布多选时遇到问题,我收到错误: “没有带有'IEnumerable'类型的'NotificationUsergroups'键的ViewData项。”
在控制器中我有:
MultiSelectList NotificationUsergroups = new MultiSelectList(Usergroups, "UsergroupID", "UsergroupName", selectedNotificationUsergroupIDs);
ViewData["NotificationUsergroups"] = NotificationUsergroups;
在视图中我有:
<%= Html.ListBox("NotificationUsergroups")%>
在后期行动中:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ObjectEdit([BindAttribute(Include = "BookingObjectID,BookingObjectName,Activated,ActivationStartDate,ActivationEndDate,AvalibleObjects,AvalibleObjectsPerBooking")]BookingObject bookingobject, int[] Objectcategories, int[] NotificationUsergroups, int[] CancellationUsergroups)
{
if (ModelState.IsValid)
{
try
{
_bs.SaveBookingObject(bookingobject);
if (NotificationUsergroups != null)
_bs.SaveNotificationUsergroups(bookingobject.BookingObjectID, NotificationUsergroups);
return View("CreateObject", new BookingObjectsAdminEditViewModel { BookingObject = bookingobject });
}
catch {
ModelState.AddModelError("SomeError", "errrrrrrrrror");
}
}
可能有什么问题?我检查了拼写和所有,如果我没有使用多选列表运行,则可以正常工作。
是什么让数据“消失”?
提前致谢 / M
答案 0 :(得分:1)
您还需要在POST接受方法中设置viewdata,因为如果它有错误,它将返回到原始视图。
善,
丹
或者将它们包含在你的模型中:)你需要改变视图。
答案 1 :(得分:0)
您的操作必须设置您的ViewData。
如果您的操作调用
ViewData["NotificationUsergroups"] = NotificationUsergroups;
一切都应该没问题。