【问题标题】:When is it necessary to explicitly place attributes on controllers?什么时候需要在控制器上显式放置属性?
【发布时间】:2012-10-17 15:46:56
【问题描述】:

我创建了一个新的 MVC 4 项目。我创建了一个自定义操作过滤器并从 ActionFilterAttribute 继承。我为 OnActionExecuting() 创建了一个覆盖。目前,它没有多大作用。它只是向输出窗口输出一条消息。最后,我在 FilterConfig.cs 中的 RegisterGlobalFilters() 中注册了操作过滤器。

当我运行应用程序时,断点被命中。这很好。但是,我没有向任何控制器添加任何属性。这种行为正确吗?我什么时候需要向我的控制器添加属性?这是如何工作的?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    RegisterGlobalFilters 适用于所有控制器。

    在某些情况下,您可能希望将特定属性添加到特定控制器。例如,某个控制器可能需要使用[Authorize (Roles="group1")] 的某个角色,而其他所有控制器都不需要。将属性添加到该控制器只会为您提供此功能。

    【讨论】:

    • 好的,谢谢!我通过一系列测试确认了您的答案:注释掉 FilterConfig 中的注册行并向我的控制器类添加属性,注释掉两者,注释掉属性并取消注释注册。
    • @user1469655 那么您可以随时将此问题标记为已回答;)
    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多