【发布时间】:2015-09-08 20:22:14
【问题描述】:
我正在开发一个 ASP.NET MVC 5 网站,该网站有一个公共“营销”网站,其中包含一些静态页面,其中包含有关公司、法律、社交、联系我们等的信息,非登录用户可以使用权。然后,一旦登录,注册用户就可以访问网站的后端。
最初我将所有公共“营销”页面都转到http://www.mywebsite.com/Marketing/About、http://www.mywebsite.com/Marketing/Social 等。
但是,企业希望所有“营销”页面都可以从根网站的单个目录中访问,因此可以通过以下方式访问上面的链接: http://www.mywebsite.com/About、http://www.mywebsite.com/Social等
我知道我可以使用以下方法通过为每个“营销”页面注册单独的路线来使其工作,如下所示:
routes.MapRoute(
"ShortAbout",
"About",
new { controller = "Marketing", action = "About" }
);
routes.MapRoute(
"ShortSocial",
"Social",
new { controller = "Marketing", action = "Social" }
);
但是,由于大约有 15 个“营销”页面,这似乎效率低下,似乎必须有更好的方法来做到这一点。
我还尝试了此处概述的通用路由方法:http://www.wduffy.co.uk/blog/aspnet-mvc-root-urls-with-generic-routing/
但这种方法的问题是我有一个“营销”页面,它与控制器同名,最终将用户转发到营销子目录。例如,我有一个名为“MachineController”的控制器,在“MarketingController”中有一个名为“Machine”的操作/页面,因此它使用上述链接中的方法将用户转发到 /Marketing/Machine。
还有其他想法吗?提前致谢。
【问题讨论】:
-
使用通用方法并重命名您的操作或其他控制器名称.. 将
s添加到其中一个或另一个
标签: c# asp.net asp.net-mvc asp.net-mvc-routing