【问题标题】:MVC4: how to set session variable to null in javascriptMVC4:如何在javascript中将会话变量设置为null
【发布时间】:2016-11-21 05:03:54
【问题描述】:

我在 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 上出现错误。

【问题讨论】:

  • 会话是正确的选择吗?如果您想在同一个请求中回读一次,然后删除会话项,您可以使用 TempData 代替,它在请求结束时被清除。
  • 直接使用会话状态在 ASP.Net MVC 中是一种不好的做法。你想存储什么样的信息?

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


【解决方案1】:

会话变量是服务器端的东西。您的 javascript 代码在客户端浏览器上执行。因此,您不能直接从您的 javascript 代码中设置服务器端变量。

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

if (tempMembership) {

        membershipData.updateMembership(tempMembership);
        updateSubtotal();     

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

假设您的HomeController 中有一个SetSession 操作方法

[HttpPost]
public ActionResult SetSession()
{
   Session["Membership"]=null;
   return Json(new { status="success"});
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 2017-07-08
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2014-01-23
    • 2016-03-15
    • 1970-01-01
    相关资源
    最近更新 更多