【问题标题】:ASP.NET MVC 4 Override Controller NameASP.NET MVC 4 覆盖控制器名称
【发布时间】:2013-04-05 10:43:22
【问题描述】:

是否可以覆盖 ASP.NET MVC 4 中的控制器名称? 路由需要它。

[ActionName("some-action-name")] 属性可以覆盖动作名称。

是否可以对控制器类名做同样的事情?

需要在路由中创建一个控制器名称以包含破折号,例如“some-controller-name”而不是“SomeControllerName”

【问题讨论】:

  • 我认为这是不可能的,因为控制器必须是简单路由所独有的。
  • 尝试在Global.asax中添加
  • 控制器动作名称也是唯一的,但它们具有允许覆盖它的 ActionNameAttribute。
  • 你不需要这样做,你可以在默认的前面放一个新的,以便首先检查它。它看起来像这样(但是我没有测试过):routes.MapRoute( name: "MyName", url: "this-is-dashed/{action}/{id}", defaults: new { controller = "ThisIsNotDashed", action = "Index", id = UrlParameter.Optional } );
  • 看起来你想这样做stackoverflow.com/a/2454016/351614

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-routing


【解决方案1】:

通过路线解决。这是唯一的方法。

感谢 cmets。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 2013-01-26
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    相关资源
    最近更新 更多