在ASP.NET MVC中,我会覆盖OnException,因此我可以对异常进行一些自定义错误处理。我想在这里做的一件事是记录错误发生在web应用程序的哪个区域。
例如,我们在Web应用程序中有Webshop和Administration区域。然后我想确定异常是来自Webshop控制器还是管理控制器。这就是我所拥有的:
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception != null)
{
ErrorTargetType targetErrorType = ErrorTargetType.DipService;
if (filterContext.Controller is CatalogController)
targetErrorType = ErrorTargetType.WebshopInterface;
LogException(filterContext.Exception, targetErrorType);
}
base.OnException(filterContext);
}
它工作正常但我想在一组管理控制器上做if语句。 ASP.NET MVC是否具有一些标准功能,它提供集合中Web应用程序中的所有控制器,如果是这样,我如何将Webshop控制器与管理控制器分开?
答案 0 :(得分:3)
集合中的webapplication中的所有控制器
控制器集合或控制器组是一个在ASP.NET MVC中不存在的概念,也没有多大意义。您致电ControllerA
,ControllerB
和ControllerC
成为管理的一部分的事实是只有您已定义的概念。在ASP.NET MVC中, Administration 的唯一概念几乎没有任何意义。在ASP.NET MVC中,您有模型,视图,当然还有控制器。
如果是这样,我如何从管理控制器中分离Webshop控制器?
使它们从公共基本控制器派生,或使它们实现marker interface。