我正在使用ActionFilter确定用户在执行操作之前是否可以访问特定资源,例如Account对象(Rhino Security)。这是一个全局过滤器,如果授权值失败,它将重定向到错误页面
我正在使用以下代码,对于整个页面请求都可以正常工作:
filterContext.Controller.TempData["ErrorMessage"] = string.Format("You are not authorized to perform operation: {0}", operation);
filterContext.Result = new RedirectResult("~/Error/AuthorizationError");
Ajax请求我不想应用重定向,而是返回错误消息。有没有办法告诉操作过滤器这是AJAX请求还是常规的整页请求(抱歉,不确定正确的术语)?
提前致谢
J.P
最佳答案
您可以使用IsAjaxRequest扩展方法:
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
// it was an AJAX request
...
}
else
{
// it was a standard request
filterContext.Controller.TempData["ErrorMessage"] = string.Format("You are not authorized to perform operation: {0}", operation);
filterContext.Result = new RedirectResult("~/Error/AuthorizationError");
}
关于asp.net-mvc-3 - ASP.NET MVC ActionFilter-确定是否AJAX请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8422191/