【问题标题】:What is the difference between RouteArea and RoutePrefix using AttributeRoutingRouteArea 和 RoutePrefix 使用 AttributeRouting 有什么区别
【发布时间】:2013-04-30 19:00:28
【问题描述】:

所以我一直在使用http://attributerouting.net/ 并喜欢它。但是,当我应该使用 RouteArea 或 RoutePrefix 或同时使用两者时,我似乎无法理解。

例如,我的想法是,对于 API 控制器,使用 RouteArea("api"),然后作为前缀可能使用控制器的主要功能?任何澄清都会有所帮助,谢谢!

【问题讨论】:

    标签: c# asp.net-mvc-4 attributerouting


    【解决方案1】:

    RouteArea 旨在与具有正式区域概念的 MVC 控制器一起使用。在 web api 中,使用 RoutePrefix 即可。

    【讨论】:

    • 所以对于 webapi 控制器,只使用前缀,但对于 mvc 控制器,区域。什么时候同时使用它们是合适的?我在网站上看到的一个例子同时使用了这两种方法。即 [RouteArea("Reporting")] [RoutePrefix("Sample")]
    • 如果将路由映射到 MVC 区域,请使用 RouteArea。前缀为您提供了另一层控制。例如:我的 MVC 站点中有一个管理区域,该区域有一个用户控制器。我会使用 RouteArea("Admin") 来声明路由对应于管理区域(以帮助 MVC 视图解析等)。此外,RouteArea 属性将为所有路由添加前缀“Admin/”。然后,我还将使用 RoutePrefix("Users") 将前缀“Users/”附加到控制器的路由上。所以我会得到这样的路线:“Admin/Users/Foo”。如果您在基本控制器上有 RouteArea,这更有意义。
    • 非常感谢,这真的很有帮助!
    • @spot 我也在做同样的事情,尽管我继承的代码没有使用标准的 MVC 区域。尽管如此,我已经创建了一个基本控制器并对其应用了 [RouteArea("module")],然后我继承的控制器具有自己的 RoutePrefix 属性。当然,如果我想从头开始写,我会使用标准区域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多