从ajax调用中的控制器访问会话变量

时间:2018-06-01 16:54:13

标签: javascript ajax asp.net-mvc asp.net-ajax

我的某些字段已填满我的控制器。

 public string AjaxLogin()
        { 
          //some code to check admin or not
           Session["UserName"] = "Smith";
           if(type="Admin")
           {
              Session["UserRole"] = 1;
           }
           Session["EmployeeID"] = 101;
        }

我对此控制器进行了ajax调用,如下所示,如果成功,我需要在成功中访问这些会话变量以检查用户角色。

      $.ajax(
             {
                url: GLOBAL.GetAppPath() + 'Home/AjaxLogin',
                data: data,
                type: 'POST',

                error: function (xhr, status, error) {
                     console.log(error);
                },

                success: function (result, status, xhr) {
                      if (result == 'OK') 
                      {                          
                        var UserVal = '@Session["UserRole"]';
                        alert(UserVal);
                        if(UserVal ==1)
                        {
                         var baseUrl ="@Url.Action("Admin","AdminPage")";
                        window.location.href = baseUrl;                           
                        }
                        else
                        {
                        var baseUrl ="@Url.Action("Admin","RegularPage")";
                        window.location.href = baseUrl;
                        }
                      }
                     else {
                             $('#msgError').html('Error: ' + result);
                             $('#msgError').css('display', 'block');
                          }
                      },
                  });

但是我无法在此调用中访问此变量。我想检查用户角色变量并相应地给出url操作。

1 个答案:

答案 0 :(得分:0)

如果你想重定向到你项目中的控制器,你可以使用 Url helper 示例:

return JavaScript( "window.location = '" + Url.Action("Edit","Dispatch") + "'" );

P.S:我无法评论,因为它要求 50 点声望,这就是我在这里评论的原因。