日期:2014-05-17  浏览次数:20391 次

问个MVC地址路由的问题
配置了以下路由
  routes.MapRoute(
  "List",
  "Products/List/{Category}_C{CategoryID}_{Keyword}_{CurrentPage}.html",
  new { controller = "Products", action = "List", Keyword = UrlParameter.Optional, CurrentPage = 1 }
  );

其中Keyword是搜索关键字,这个可能为空,所以我Keyword = UrlParameter.Optional

但在测试的时候以下地址是无法浏览的,显示404

http://localhost/Products/List/Other-Auto-Parts_C76__1.html
必须要在Keyword的加上内容

另外我在测试的时候,好像地址中参数与参数之间必须要/分隔,然后可空参数才能起作用!

请问我哪里做的不对??谢谢

------解决方案--------------------
可空的要放最后一个,或者在后面在加一条没有keyword的路由
------解决方案--------------------
要把{keyword}放在{currentpage}后面,不然当keyword为空时路由系统可能会把currentpage的值当作keyword的值
------解决方案--------------------
要设两个路由 一个对应4参数 一个对应3参数