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

本文关键字:窗口 地址 调用 AJAX | 更新日期: 2023-09-27 18:32:03

我有一个 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));
}

我遇到的问题出在"如果"部分。我收到一条错误消息,指出名称"内容"不存在。我需要一种方法将我的窗口位置重定向到"/login"。

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

而不是返回纯文本返回 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;