2. ASP.NET MVC Routing
当你新建一个MVC项目后,直接运行,你会看到欢迎的主页面,但是你到项目中去看,却发现项目中并没有相应的页面存在?
那是MVC Routing在起作用,打开Global.asax,可以看到相应的Routing代码
代码
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 自定义名称
"{controller}/{action}/{id}", // 参数
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数的默认值
);
}
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 自定义名称
"{controller}/{action}/{id}", // 参数
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数的默认值
);
}
程序运行后,它就会取默认值,去http://localhost:1234/Home/Index这个地址。
这里有一个大家都要遵守的约定。
Home 表示地址要防问的是HomeController.cs这个控制器文件;
Index 表示执行的 HomeController.cs文件中的Index方法。
自定义规则:
routes.MapRoute(
"shop",
"shop/{action}/{year}",
new { controller = "shoping", action = "Index", year = 2000 },
new { year = "\\d{4}" }); //对年进行约束,可以用正则表达式