我有一个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'。
答案 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;