2010-04-08 42 views
2

我刚刚开始使用ASP.NET MVC,它太棒了!但是,我不太了解设置路线。如何路线/关于/首页/关于

如何路由〜/关于〜/ Home/About?

/Views/Home/About.aspx

我希望能够与访问它 /首页/ 或只是 /关于

回答

7

如果你想明确地设置一个路线,你可以做这样的事情:

routes.MapRoute( 
      "AboutRoute", 
      "About", 
      new { controller = "Home", action = "About" } // Parameter defaults 
    ); 

我认为这就是你想要做的?即有/由家庭控制器处理?

默认路由(如下)处理/首页/

routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
     ); 
+0

很简单;-)谢谢!我应该问如何用通配符来设置它。所以/首页/联系我们去联系 – 2010-04-08 01:32:11

+1

@Brian - 不知道我完全明白你的意思,你的意思是你想要在家里控制器的任何路线被/ {action}而不是/ {controller}/{action}访问?我不会推荐它,这意味着你不可能拥有上面的默认路由(“{controller}/{action}/{id}”)。更简单地指定特定的路线,例如/ About关于您想要的主控制器操作。 – Rosstified 2010-04-08 01:46:12

+0

这个问题是/ home/about和/ about都会路由到内容 - 所以你的网站上有重复的内容(不好的做法 - 对SEO不好)。 – niico 2016-10-07 22:18:17

7

在回答关于RM的回答您的评论 - 你实际上并不需要为通配符。只要做到

routes.MapRoute(
    "AllToHomeController", 
    "{action}/{id}", 
    new { controller = "Home", action = "Index", id = "" }); 

但是请注意,你需要把这个路线在您的路由表的末尾(您可能需要删除默认路由),因为这将赶上网址

您可以使用Phil Haack的Route Debugger来验证您的路线是否符合您的预期。

+0

谢谢!得爱,所以在10米以下有两个答案。 – 2010-04-08 01:40:35