MVC4:如何在javascript中将会话变量设置为null

时间:2016-07-18 14:27:28

标签: javascript asp.net-mvc asp.net-mvc-4 session razor

我在Razor视图javascript中使用MVC会话变量。但是,如果我想将该会话值设置为null,那该怎么做?

 function UpdateMembershipJavascriptObject() {
        var tempMembership = @Html.Raw(JsonConvert.SerializeObject(Session["Membership"]));
        if (tempMembership) {

            membershipData.updateMembership(tempMembership);
            updateSubtotal();     
            //here I set to null
        }
    }

我尝试'@Session["Membership"]' = null,但在浏览器上= null收到错误。

1 个答案:

答案 0 :(得分:1)

会话变量是服务器端的事情。您的javascript代码在客户端浏览器上执行。因此,您无法直接从javascript代码设置服务器端变量。

您可以做的是,对服务器操作方法进行ajax调用并在那里更新会话值。

if (tempMembership) {

        membershipData.updateMembership(tempMembership);
        updateSubtotal();     

        $.post("@Url.Action("SetSession","Home")",function(){
               //done. Do something else
        });
}

假设您的SetSession

中有HomeController操作方法
[HttpPost]
public ActionResult SetSession()
{
   Session["Membership"]=null;
   return Json(new { status="success"});
}