我有一个在类级别具有 HandleError 属性的 C# MVC 3 控制器
[HandleError(View = "MyErrorPage")]
public class MyController : Controller
{
在方法级别,我得到了:
[HttpPost]
[MyExceptionHandler]
public ActionResult DoSomeStuff(FormCollection fc)
{
MyExceptionHandler 看起来像:
public class MyExceptionHandlerAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
//do Stuff
JsonResult result = new JsonResult {
Data = new {
error = "Your request blah blah...."
}
};
filterContext.Result = result;
filterContext.ExceptionHandled = true;
}
}
这在我的本地主机上运行良好。即,在调用方法'DoSomeStuff' [MyExceptionHandler] 中的异常时,不会调用类级别[HandleError]。然而,在开发环境中,类级别 [HandleError] 开始发挥作用。结果是 HandleError view=MyErrorPage 被渲染。
- 我知道 [HandleError] 在 localhost 上是多余的,但可以更正(或配置选项)?
- 我不确定是否在开发环境(不是本地主机)上调用了 MyExceptionHandler 。可以在类级别[HandleError]之前调用吗?
我的问题是我需要 [MyExceptionHandler] 成为唯一调用的处理程序。我希望能够在我的本地主机上调用 [HandleError],以便我可以在本地模拟问题。