2009-08-31 63 views
0

我有一個發佈multiselect的問題,我得到的錯誤: 「有沒有ViewData項與關鍵'NotificationUsergroups'類型'IEnumerable'」。有沒有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"); 
      } 
     } 

可能是什麼問題?我檢查了拼寫和所有,如果我不運行multiselect列表的作品。

什麼使數據「消失」?

在此先感謝 /M

+0

你是什麼意思「在我有控制器」? – 2009-08-31 10:00:32

回答

1

您需要設置可視數據的POST方法接受,以及因爲如果有一個錯誤,將返回到原來的看法。

善良,

或者將它們包含在模型:)你需要改變看法壽。

+0

如果我在模型中使用它,應該是什麼類型? – 2009-08-31 11:42:17

+0

這將是一個多選列表還, 在您看來它會是這樣的: <%= Html.ListBox(「NotificationUsergroups」,Model.NotificationUsergroups)%> – 2009-08-31 11:52:41

+0

我應該使用什麼類型的,獲得式missmatch錯誤 – 2009-08-31 13:03:54

0

您的操作必須設置您的ViewData。

如果你的行動電話

ViewData["NotificationUsergroups"] = NotificationUsergroups; 

一切都應該是正常的。

相關問題