Viewbag无法在显式局部视图中工作

时间:2013-03-05 15:36:51

标签: c# asp.net-mvc-4 viewbag

我有一个列表视图我想在页面中添加一个创建部分。

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

@ Html.Partial(“_ Quickblah”,new 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);
        }

我收到错误

  

没有类型为'IEnumerable'的ViewData项   有'KeyID'键。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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);
}