Asp.net mvc 3 MVC3路由中的可选参数
我正在尝试创建可以应用1和2种URL类型的路由 1-第一个路由将在应用程序的开始,我想要2种类型的URL,可以用来访问索引页。我不能点击下面的路线时,我有网址与家在最后,而不是去类型2Asp.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
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是。请参阅下面提供的每个场景的输出屏幕截图
希望这能给您一些解决问题的思路。谢谢您的详细回复。让我做些测试,然后再打给你。