检索在视图中设置的ViewBag值

时间:2016-04-05 14:32:27

标签: c# asp.net-mvc

如何阅读,例如ViewBag.Title,如基本控制器,动作过滤器等​​,在视图设置后

2 个答案:

答案 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);
        }
    }