Asp.net mvc 3 MVC3路由中的可选参数

Asp.net mvc 3 MVC3路由中的可选参数,asp.net-mvc-3,Asp.net Mvc 3,我正在尝试创建可以应用1和2种URL类型的路由 1-第一个路由将在应用程序的开始,我想要2种类型的URL,可以用来访问索引页。我不能点击下面的路线时,我有网址与家在最后,而不是去类型2 http://www.example.com Or http://www.example.com/Home routes.MapRoute( "Default", "{controller}/{action}", new

我正在尝试创建可以应用1和2种URL类型的路由

1-第一个路由将在应用程序的开始,我想要2种类型的URL,可以用来访问索引页。我不能点击下面的路线时,我有网址与家在最后,而不是去类型2

http://www.example.com Or http://www.example.com/Home

routes.MapRoute(
               "Default",
               "{controller}/{action}",
               new { controller = "Home", action = "Index", name = "" }
           );
2-此类型的URL正在传递“Name”参数以从DB加载内容。我希望这个网址像

但我想上面的网址像

在哪里 Contact和About是URL中传递的“Name”参数的值。下面是使用的路线

 routes.MapRoute(
                "DynamicPages",
                "{name}",
                new { controller = "Home", action = "Page" }
            );

这里有一个可能的解决办法。我不确定这样做是否正确

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    //To match http://www.mysite.com
    routes.MapRoute(
        "RootUrl",
        "",
        new { controller = "Home", action = "Index", 
                id = UrlParameter.Optional }
    );

    //To match http://www.mysite.com/Home
    routes.MapRoute(
        "RootUrlWithAction",
        "Home/{action}",
        new { controller = "Home", action = "Index" }
    );

    //To match http://www.mysite.com/Contact Or 
    //      http://www.mysite.com/About Or
    //      http://www.mysite.com/Contact/22 Or
    //      http://www.mysite.com/About/33
    routes.MapRoute(
        "DynamicPages",
        "{name}/{id}",
        new { controller = "Home", action = "Page", 
                id = UrlParameter.Optional }
    );

    // Everything else
    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", 
                    id = UrlParameter.Optional } // Parameter defaults
    );
}
测试了以下路线。这里的站点根url是。请参阅下面提供的每个场景的输出屏幕截图

  • -->首先使用路线图
  • -->使用第二个路线图
  • -->使用第三条路线图
  • -->使用第三条路线图
  • -->使用第三条路线图
  • -->使用第四个路线图
  • 屏幕截图#1:

    截图#2:

    屏幕截图#3:

    屏幕截图#4:

    屏幕截图#5:

    屏幕截图#6:


    希望这能给您一些解决问题的思路。

    谢谢您的详细回复。让我做些测试,然后再打给你。