- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在处理来自 javascript 的 XHR 调用时,利用现有 [HandleError] 和 [Authorize] 属性的优雅方法是什么?
因此,举例来说,GetJson 方法返回 JsonResult。
当发生错误时,[HandleError]方法将返回一个ViewResult,该ViewResult将在javascript的回调函数中检索。
然后我必须在 JavaScript 中的任何地方放置自定义代码来处理和重定向任何崩溃等。
我想做的是让 [HandleError] 属性返回一个 JsonResult(如果原始操作计划这样做)。这可能是我的一厢情愿。
类似地,如果传入未经授权的 Json 请求,我不会返回新的 HttpUnauthorizedResult,而是返回一个 JsonResult,它允许我的客户端代码以通用方式处理事务。
我是不是找错树了?也许 MVC 有一种更好的方法可以处理我不知道的问题?
其他人如何处理这种情况?
谢谢。
PS:我意识到我可以创建自己的 [HandleJsonError] 和 [AuthorizeJson] 属性,它们返回 JsonResults 而不是 ViewResults,但随后我必须四处走动并将它们放置在任何返回 Json 的方法上,并担心 Filter顺序等。如果我可以使用反射或其他东西来使相同的属性根据原始方法的签名而采取不同的行为,那肯定会很好。最佳答案
你不知道。目前,他们对 JSON 没有帮助。但是:
I realize I can create my own [HandleJsonError] and [AuthorizeJson] attributes which return JsonResults instead of ViewResults, but then I'd have to go around and place these on any method that returns Json, and worry about Filter order etc.
我们所做的是子类型现有属性,并使它们有条件地工作:
public sealed class AjaxAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (filterContext.Result == null)
{
return;
}
else if (filterContext.Result.GetType() == typeof(HttpUnauthorizedResult)
&& filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new ContentResult();
filterContext.HttpContext.Response.StatusCode = 403;
}
}
}
现在 JS 代码可以查找 403(因为 ASP.NET 处理 401 并返回错误页面),并且相同的属性适用于 Ajax 和非 Ajax。因此不存在过滤器顺序问题。
关于asp.net mvc [handleerror] [authorize] 与 JsonResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609677/
试图弄清楚为什么 handleError 无法启动。 我们的get api调用结构 get(relativeUrl: string, _httpOptions?: any) { var res
发布更新以反射(reflect)@Kate建议的部分修复。新帖子下方的原始帖子: 我有Ajax调用HttpPost Action方法。如果该方法无异常(exception)地执行,我希望它以div元素
我一直在遵循 HandleError 属性的指南: blogs.msdn.com我这样使用(AccountController): [HandleError(View="ErasErrorPage")
我在类级别有一个带有 HandleError 属性的 C# MVC 3 Controller [HandleError(View = "MyErrorPage")] public class My
我的基本 Controller 类上有以下内容,我的其他 Controller 继承自: [HandleError(ExceptionType = typeof(NotFoundException),
在我的 web.config 中,我包含了: 现在不再显示死亡蓝屏了。我想我必须将 HandleError 属性包含到我的 Controller 方法或类本身中: [HandleError] pub
我知道这是一个常见问题,但我已经抓取了很多讨论但没有结果。 我正在尝试使用 HandleError ASP.MVC 属性处理错误。我正在使用 MVC 4。 我的错误页面位于 Views/Shared/
我有一个 MVC 3 Web 应用程序,我在其中使用“HandleError”操作过滤器进行异常处理。我的这个 Action 过滤器实现如下: [HandleError] public class B
我正在创建一个应用程序,使用reactjs作为前端,rails API作为后端。我的前端在端口 3000 上运行,rails 在 3001 上运行。我有代理设置来允许这样做。我向 Rails 提出请求
我有一个 MVC 4 项目,我在其中实现了 HandleError 属性,以便在发生任何异常时显示我自己的自定义错误页面。 这是我的错误 Controller : Public Class Error
我不确定 HandleError 的不同方法之间有什么区别。 在 asp.net mvc(默认项目)中,他们将其放在类的顶部 [处理错误] 所以我正在读一些博客,这个人这样说 “......告诉框架,
我正在使用 ASP.MVC 4。我有一个连接到基本 View 模型的强类型布局(每个其他 View 模型都继承自基本 View 模型)。我正在尝试使用标准的 HandleError 过滤器来处理错误。
我正在使用来自 PHP Letter 的 ajax 文件上传插件并且正在使用 jQuery 1.6.2。文件上传正确,但无法使用从 php 脚本返回的 JSON 数据,当我检查 javascript
我知道 中有很多问题SO 关于 ASP.NET MVC 中的错误处理 . 我明白,大多数人都试图通过三种方式实现目标: 创建一个 BaseController并覆盖 OnException方法 使用
aspnet mvc 有 HandleError 过滤器,如果发生错误,它将返回 View ,但是如果在调用 JsonResult Action 时发生错误,如何返回表示错误的 JSON 对象? 我不
在处理来自 javascript 的 XHR 调用时,利用现有 [HandleError] 和 [Authorize] 属性的优雅方法是什么? 因此,举例来说,GetJson 方法返回 JsonRes
在我使用的 MVC3 Web 应用程序中 public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
我正在尝试实现一个 REST 环境,在该环境中,在客户端,客户端数据存储在 SQLite 数据库中。 我之前已经在 Cordova 上使用 Cordova-sqlite-storage 完成了此操作,
本文整理了Java中uk.co.real_logic.sbe.xml.XmlSchemaParser.handleError()方法的一些代码示例,展示了XmlSchemaParser.handleE
本文整理了Java中com.github.robozonky.integrations.zonkoid.ZonkoidConfirmationProvider.handleError()方法的一些代码
我是一名优秀的程序员,十分优秀!