我在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
收到错误。
答案 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"});
}