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