site.master中的会话数据

时间:2010-01-12 19:39:14

标签: asp.net-mvc

我想从用户会话中获取一个值并将其显示在site.master文件中。我怎么能这样做,以便每个视图页面都有这个值?我是否必须在每个控制器动作中放置ViewData [“MyValue”]?是否有一种全局方式在一个地方执行此操作,因此我不必在每个控制器操作中使用相同的代码?

2 个答案:

答案 0 :(得分:3)

您可以编写动作过滤器属性并用它来装饰您的控制器:

public class CustomFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
        filterContext.Controller.ViewData["MyValue"] = "some value";
    }
}

然后用这个属性装饰控制器:

[CustomFilter]
public class MyController: Controller
{
    // actions
}

这将确保在属于此控制器的所有操作上设置ViewData["MyValue"]

答案 1 :(得分:0)

<%=会话[“MyValue”]%>在母版页中