asp.net MVC URL Routing问题 关于routes.MapRoute()方法的参数问题
VS2010 MVC3模板建立的项目,默认这么写
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
一切没问题,启动项目就能找到默认页面。
但是换个写法,如下
routes.MapRoute(
"Default", // 路由名称
"{a}/{b}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
就不能识别默认页那条路由。。。。这是什么原因。。
想请问下,"{controller}/{action}/{id}"必须这么写吗?不能替换成{a}{b}{c}吗?
还有 new { controller = "Home", action = "Index", id = UrlParameter.Optional }必须这么写吗? 能不能写成new { a= "Home", b= "Index", x = UrlParameter.Optional }
这两者到底哪儿是固定,哪儿是必须对应的啊。有什么对应关系啊。。。郁闷死了。。
2012-01-16 17:18
提问者采纳
必须要{controller}/{action}的,其他的参数不要求。你说的参数可以这么写:
{controller}/{action}/{a}-{b}-{c}..... ,明白?另外最后一部分是倒着解析的,如:
规则{controller}/{action}/{a}-{b}-{c},一个url是 user/center/1-2-3-4,解析结果为controller=user,action=center,c=4,b=3,a=1-2;明白吧?