【发布时间】:2012-03-21 04:27:11
【问题描述】:
类似的问题被问了一遍又一遍,但出于某种原因,我尝试过的所有方法都没有奏效。我有一个 ajax 应用程序,当用户请求一个无效的 url 时,我想返回一个看起来像这样的 JsonResult:
[ error: true, status: 404, message: 'The requested page could not be found... or some other message... ']
我不希望用户被重定向到 web.config 文件中定义的错误页面,因为这会将他们带出 ajax 应用程序。
我尝试了以下方法:
- 自定义 HandleErrorAttribute - 由于我的代码引发的异常,这些仅处理 500 个错误
- 扩展 FilterAttribute 并实现 IExceptionFilter 的自定义 FilterAttribute - 与以前相同的问题
- 在基本控制器中覆盖 HandleUnknownAction - 无法确定如何从该方法返回 JsonResult
- 添加了一条 catch all 路线 - 在找到 catch all 路线之前,我的其他路线正在使用中
任何想法都将不胜感激。
【问题讨论】:
-
如果您期望的是 404,您的其他路线如何使用?
-
url /NonExistantController/NonExistantAction/ 仍然匹配 stock 路由 /{Controller}/{Action}/{id} 以便在 {*url} 的 catch all 路由之前使用路由
标签: asp.net-mvc json http-status-code-404