问题描述
publicstaticvoidRegisterRoutes(RouteCollectionroutes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("language",//路由名称"{language}/{controller}/{action}/{id}",//带有参数的URLnew{controller="Default",action="Index",id=UrlParameter.Optional}//参数默认值);routes.MapRoute("no-language",//路由名称"{controller}/{action}/{id}",//带有参数的URLnew{controller="Default",action="Index",id=UrlParameter.Optional}//参数默认值);}
在我输入www.123.com/zh-cn/Home/Index的时候能正常路由到Action!www.123.com/Home/index完全符合第二个路由规则可是为什么不给路由啊?如果第一个路由routes.MaoRoute与第二个routes.MapRoute位置互调就能路由这是为什么!求解答:(
解决方案
解决方案二:
该回复于2012-03-21 09:18:31被版主删除
解决方案三:
www.123.com/Home/index这个也符合第一个路由所以优先第一个
解决方案四:
匹配是按路由在路由表中的顺序先后来的,越在前优先级越高
解决方案五:
www.123.com/Home/index不符合第一个路由规则啊!像你说www.123.com/Home/index符合难道language这个参数可有可无啊!
解决方案六:
怎么不符合你action设置了默认值
解决方案七:
www.123.com/Home/index这个对路由来说少的是action不是language而且你第一个路由的action是设置了默认值的所以和第一个路由匹配
解决方案八:
不懂!我好好研究一下!有理有据有demo!