如何阅读,例如ViewBag.Title,如基本控制器,动作过滤器等,在视图设置后?
答案 0 :(得分:0)
你不能,Viewbag的目的是将数据从控制器发送到视图,你不能对这个容器做任何其他事情。
请参阅:http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp-net-mvc-3-applications/
答案 1 :(得分:0)
ViewBag的目的是将数据从Controller发送到View,而不是相反。 Viewbag提供对动态属性的数据访问。
另一方面,例如Base controller&动作过滤器我们可以从ActionExecutingContext或ActionExecutedContext变量中获取数据。
我们还可以在ActionFilters中设置数据,如下所示
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext != null)
{
//set vlaue in context
filterContext.RouteData.DataTokens.Add("VariableName", "Value of variable");
//Log information
Log("OnActionExecuting", filterContext.RouteData);
}
}