2013-03-05 26 views
0

我有一個列表視圖而且我想添加一個創建的部分到頁面。Viewbag不能在明確的部分視圖中工作

@model IEnumerable <blah.Domain.Entities.blah> 

@ Html.Partial( 「_ Quickblah」,新blah.Domain.Entities.blah());

public ViewResult _Quickblah() 
     { 
      ViewBag.CategoryID = new SelectList(Repository.Categorys, "CategoryID", "Title"); 

      Blah blah = new Blah() { CreatedDate = DateTime.Now }; 

      return View(blah); 
     } 

和我得到的錯誤

有型的無ViewData的項目 '的IEnumerable' 是 有鑰匙 'CATEGORYID'。

我該如何解決這個問題?

+0

你傳遞一個模型轉換爲局部哪裏該包含哪些內容? – CR41G14 2013-03-05 15:39:25

回答

2

當你調用Html.Partial_Quickblah控制器動作不叫,當然還有ViewBag.CategoryID未分配(因爲我認爲在渲染這個觀點你沒有設置你的主控制器的動作)。您應該使用Html.Action代替:

@Html.Action("_Quickblah") 
_Quickblah行動

還要確保你正在返回的局部視圖:

public ActionResult _Quickblah() 
{ 
    ViewBag.CategoryID = new SelectList(Repository.Categorys, "CategoryID", "Title"); 
    Blah blah = new Blah() { CreatedDate = DateTime.Now }; 
    return PartialView(blah); 
} 
+0

錯誤我得到了「CS1928:'System.Web.Mvc.HtmlHelper >'不包含'Partial'的定義,並且最好的擴展方法是重載'System.Web.Mvc.Html.PartialExtensions.Partial(System.Web.Mvc.HtmlHelper,string,object,System.Web.Mvc.ViewDataDictionary)'有一些無效參數 – Evildommer5 2013-03-05 15:46:44

+0

@DarinDimitrov,我們可以使用'@Html.Action ()'?或者當我們更喜歡哪一個更好? – 2013-03-05 15:48:05

+0

同樣的錯誤:/ .. – Evildommer5 2013-03-05 15:50:33