检查控制器是否属于特定“控制器组”

时间:2011-11-15 19:55:33

标签: c# asp.net asp.net-mvc asp.net-mvc-3

在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控制器与管理控制器分开?

1 个答案:

答案 0 :(得分:3)

  

集合中的webapplication中的所有控制器

控制器集合控制器组是一个在ASP.NET MVC中不存在的概念,也没有多大意义。您致电ControllerAControllerBControllerC成为管理的一部分的事实是只有您已定义的概念。在ASP.NET MVC中, Administration 的唯一概念几乎没有任何意义。在ASP.NET MVC中,您有模型,视图,当然还有控制器。

  

如果是这样,我如何从管理控制器中分离Webshop控制器?

使它们从公共基本控制器派生,或使它们实现marker interface