0

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

@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);
        }

我得到了错误

没有具有键“CategoryID”的“IEnumerable”类型的 ViewData 项。

我怎样才能解决这个问题?

4

1 回答 1

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);
}
于 2013-03-05T15:41:00.783 回答