C# - 进行AJAX调用时更改窗口地址

时间:2014-11-25 23:28:41

标签: c# ajax window.location

我有一个C#页面,用于在进行ajax调用和常规调用时检查用户是否已登录。我在确定用户未登录后运行以下检查:

base.OnActionExecuting(filterContext);
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
  return Content("<script type='text/javascript'> window.location = '/login' </script>");
}
else
{
  filterContext.Result = new RedirectResult("~/Login/?referURL=" + filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.Url.PathAndQuery));
}

我遇到的问题是'if'部分。我收到一条错误消息,说“内容”这个名称不存在。我需要一种方法将窗口位置重定向到'/ login'。

1 个答案:

答案 0 :(得分:0)

而不是返回纯文本返回Json数据并从那里获取重定向url并设置Ajax成功的重定向。

 var data = new { IsSucess = true, 
                  redirectUrl = Url.Action("Action", "Controller")}

filterContext.Result = new JsonResult() { data  , 
                       JsonRequestBehavior = JsonRequestBehavior.AllowGet };

然后在Ajax调用中使用这样的JsonResult数据,

success: function (data) {
                if (data.IsSucess)
                    window.location = data.redirectUrl;