2017-06-08 14 views
0

私はASP.Net MVC 5を使用してWebアプリケーションを構築し、それと一緒にjQueryを使用しています。私はインデックスアクションを使用してセッション変数を設定し、ビューを表示する、単一のページアプリケーションのようなものを持っています。さらに、jQueryを使用して、同じコントローラ上のアクションへのGetおよびPost Ajaxリクエストを呼び出します。問題は、Sesssion変数にアクセスすることです。私は、インデックスアクションでセッション変数を設定し、jqueryによって呼び出されたポストアクションで同じ変数にアクセスしようとしています。私が紛失しているものがあるかどうかを提案してください。MVCでセッション変数をjQuery Ajaxポスト

私のコントローラクラスは、以下のようなものです:

public class HomeController : Controller 
{ 
    public async Task<ActionResult> Index() 
    { 
     var obj = new SomeObject(); 
     Session["UserName"] = Request.QueryString["UserName"]; 

     return View(obj); 
    } 

    //Invoked by jQuery Ajax method.. 
    [HttpPost] 
    [Route("home/GetResponse/")] 
    public async Task<JsonResult> GetResponse(string message) 
    { 
     var userName = Convert.ToString(Session["UserName"]);// Getting Null 
     //Perform some stuff and return json 
    } 
} 
+0

はあなたのコード、 –

+0

を表示 場合はTempDataを感謝して試すことができます –

答えて

0

セッション変数は、ページがロードまたは更新されていない場合は、変更しないことを意味し、単一のページで一定です。 Ajaxを成功させるには、セッションの値を手動で設定する必要があります。可能であれば<span id="demoid">@session["client_name"]</span>

が、その後

 success: function(data) 
     { 
      $("#demoid").html(data); // here data is the value for the session 
     } 
関連する問題