Ser*_*lov 3 asp.net-mvc exception-handling
public JsonResult Menu() { // Exception }
Run Code Online (Sandbox Code Playgroud)
我需要应用程序不将用户重定向到404页面,但返回特殊的JSON结果,如{"result":1}.
我想知道,有没有其他解决方案,而不是尝试捕捉.
你可以实现自己FilterAttribute类似的HandleErrorAttribute.
HandleErrorAttribute通常在发生错误时执行重定向,但您可以实现返回JsonResult的类似属性.像下面这样的东西会做:
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
filterContext.Result = new JsonResult
{
Data = new { result = 1 },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
filterContext.ExceptionHandled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
然后
[CustomHandleError]
public JsonResult Menu()
{
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
我建议您从CodePlex下载MVC源代码并检查当前的实现HandleErrorAttribute.它比我上面的粗略实现更加微妙,你可能想要它的一些功能.
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |