2016-07-18 3 views
1

私はRazorビューのjavascriptでMVCセッション変数を使用しています。しかし、私はそれを行う方法をnullに設定するセッションの値をしたい場合は?MVC4:javascriptでセッション変数を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

SetSessionアクションメソッドを持っていると仮定すると、セッションが正しい選択か?同じリクエストで一度読み込んでセッション項目を削除したい場合は、代わりにTempDataを使用できます。これはリクエストの最後にクリアされます。 – Igor

+0

セッション状態を直接使用することは、ASP.Net MVCの悪い習慣です。どのような情報を保存しますか? – Win

答えて

1

セッション変数はサーバー側のものです。 JavaScriptコードはクライアント側のブラウザで実行されます。したがって、JavaScriptコードからサーバーサイド変数を直接設定することはできません。

できることは、サーバーアクションメソッドへのajax呼び出しを行い、そこでセッション値を更新することです。

if (tempMembership) { 

     membershipData.updateMembership(tempMembership); 
     updateSubtotal();  

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

あなたHomeController

[HttpPost] 
public ActionResult SetSession() 
{ 
    Session["Membership"]=null; 
    return Json(new { status="success"}); 
} 
関連する問題