【发布时间】:2014-06-10 12:36:15
【问题描述】:
我必须为已经存在的网站制作虚 URL。要求是:
- 现有的控制器是一种层次结构,不能以任何方式消失或被覆盖。示例:domain.com/Dog/vanity 和 domain.com/Cat/vanity。
- 保留现有操作。任何现有操作都必须优先处理,以免该操作的页面被虚 url 踩到。
- 考虑未来的页面和操作,以满足上述要求(忽略新的虚 url 并执行操作/视图)
迄今为止,我已经尝试了各种路由解决方案,这些解决方案让我拥有 domain.com/vanity,这很好,但营销人员不喜欢,因为公司内有不同的部门。我已经尝试过路由,它将覆盖现有操作并将它们全部视为虚荣(也不可行)。我有一个解决方案,它以编程方式处理所请求的 url 并重定向到实际存在的页面,但这在任何情况下都不可扩展。
到目前为止,我知道虚部分可以被视为操作的参数,以便我可以触发路由(索引)中的默认页面,但到目前为止,这并没有保留结构。
TL;DR:我需要一个解决方案,允许域/控制器/虚荣结构,同时还允许域/控制器/操作
【问题讨论】:
-
谢谢。没听说过。我正在看它。我必须添加到站点项目中的内容越少越好(它会在几个月内被替换,但营销人员现在想要这个。)我不认为你有这个插件的一句话 TL;DR?
-
基本上(在配置之后),您将
[Route("an-area-or-string/some-action-or-string")]添加到您的操作中并调用 www.example.com/an-area-or-string/some-action-or-string 来访问该操作。 -
再次感谢!这听起来值得一试。如果这符合我的需要,我会发布。即使是这样,我对这个继承的项目做的越少越好。这是一团糟;我敢肯定,如果我改变太多,世界就会终结。
-
属性路由似乎是你想要的,那么。在我看来,这是一种影响最小的努力。您甚至可以在每个操作中拥有多个 Route 属性。您还可以在控制器上使用路由前缀。
标签: asp.net-mvc asp.net-mvc-4 routing