如何在离开网页时清除Asp.Net MVC的会话变量?

时间:2015-06-18 14:47:05

标签: css asp.net-mvc session

这是我的方法。

 public ActionResult Index()
    {
        if (Session["visited"] ==null|| (int)Session["visited"] != 1)
        {
            Session["visited"] = 0;
        }
        return View();
    }

我在视图中使用它来检查会话变量以加载动画样式表。这是我在_Layout页面中的代码,用于将css样式表注入到布局中。

@if(Session["visited"]!=null&&(int)Session["visited"]==0)
    {
        @Html.CreateStyleSheet();
        Session["visited"] = 1;
    }

在解决这个问题之前我想说的嘿伙计们我想知道如何在退出页面时清除会话数据。没有其他的。所以不要过度思考。

1 个答案:

答案 0 :(得分:2)

  

我想知道如何在退出页面时清除会话数据

现在还没有退出网页"事件。您可以将值清除为渲染页面时执行的最后操作,也可以在请求其他页面时执行第一项操作。这样做的代码是:

Session.Clear()

因此,如果这应该在呈现页面结束时完成,那么只需将其添加到视图的末尾即可。 (如果它应该在每个页面的末尾完成,那么将它添加到布局视图的末尾。)这里的想法是视图可能是服务器端执行的最后一个代码(除了没有使用你的值的框架内部代码之外,所以视图中的最后一行是你控制的最后一行。

但请注意,这使毫无意义。如果您不希望会话数据从一个页面持续到下一个页面,那么您不应该首先使用会话状态。如果您每次都清除该值,那么您实际上并未跟踪会话中的任何内容。