我需要向一个部分cshtml视图传递一些信息。我使用ViewDataDictionary
和ViewBag
来实现。
public ActionResult TaskPage(int ID = 0)
{
ViewBag.breadcrumbs = new string[] {
"List", "Tasks"
};
ViewBag.title = "Editing - My selected itemd";
ViewBag.id = ID;
return View();
}
当组装视图时,我也传递了一个 ViewDataDictionary
:
@Html.Partial("~/Views/Components/_Header.cshtml", new ViewDataDictionary { { "role", "task-page" } })
我的_Header.cshmtl
文件同时使用了这个字典和ViewBag
。
ViewBag.breadcrumbs = ViewBag.breadcrumbs != null ? ViewBag.breadcrumbs : new string[] { };
var role = ViewData["role"];
令我惊讶的是,当我传递ViewDataDictionary
时,ViewBag
不包含任何数据。这怎么可能?有什么更好的方法来处理这个问题吗?