这是我能够实现我认为你的要求。
// Portal Sections
routes.MapRoute("Home",
"",
new { controller = "Home", action = "Index" },
new[] { "Myapp.Portal.Controllers" });
routes.MapRoute("About",
"about",
new { controller = "Home", action = "About" },
new[] { "Myapp.Portal.Controllers" });
routes.MapRoute("Features",
"features",
new { controller = "Home", action = "Features" },
new[] { "Myapp.Portal.Controllers" });
routes.MapRoute("Help",
"help",
new { controller = "Help", action = "Index" },
new[] { "Myapp.Portal.Controllers" });
routes.MapRoute("Knowledgebase",
"help/kb",
new { controller = "Help", action = "Knowledgebase" },
new[] { "Myapp.Portal.Controllers" });
我可以访问
- mysite.com
- mysite.com/about
- mysite.com/features
- mysite.com/help
- mysite.com/ help/kb
但访问是不可
- mysite.com/home/about
- mysite.com/home/features
希望这有助于:)
这是非常相似的问题我问了一天:http://stackoverflow.com/questions/9974402/301-redirect-original-url-request-to-routed-url。我不是说它是重复的,因为我认为它有些不同,但我也有兴趣知道这个答案。 – Curt 2012-04-04 16:11:35
我很好奇你为什么不希望从多个端点访问路由。 – 2012-04-04 16:14:29
也许使用nuget中的'AttributeRouting'软件包,以便您可以明确定义您的所有路线...... – dotjoe 2012-04-04 16:18:47