MVC中的会话变量,带有jQuery Ajax帖子

时间:2017-06-08 10:43:54

标签: jquery ajax asp.net-mvc session-variables

我正在使用ASP.Net MVC 5来构建Web应用程序并使用jQuery。我有一种单页面应用程序,我使用索引操作设置会话变量并显示视图。此外,我使用jQuery在相同的控制器上调用Get和Post Ajax请求。问题在于访问Sesssion变量。我在索引操作中设置会话变量,并尝试访问jquery调用的post操作中的相同变量。请告知我是否遗漏了一些东西。

我的Controller类如下所示:

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
    }
}

1 个答案:

答案 0 :(得分:0)

会话变量在单页中是常量,这意味着如果未加载或刷新页面,它将不会更改。 因此,在Ajax提交成功中,您必须手动放置会话的值。 如果<span id="demoid">@session["client_name"]</span>

然后

       success: function(data)
       {
           $("#demoid").html(data);  // here data is the value for the session
       }