ASP.NET MVC 2分页路由问题

时间:2011-01-24 18:37:07

标签: asp.net-mvc-2 paging

分页时出错,

我的行动:

ProductList(string country, string city, string town, int? pageNumber)

我的路线:

routes.MapRoute(
    "ProductList",
    "myList/{country}/{city}/{town}/{pageNumber}",
    new { controller = "Product", action = "ProductList", country="", city="", town= "", pageNumber = UrlParameter.Optional });

行动链接:

Url.Action("myList","Product", new{ country="Finland",city="",town="",pageNumber=2 }) 

city = 2 ??

我找到了一个解决方案如下:

Url.Action("myList","Product", new{ country="Finland",city="s",town="n",pageNumber=2 })

HTTP:/ myList中/芬兰/ S / N / 2

ProductList(string country, string city, string town, int? pageNumber)
{
    city== "s" ? city = null;
    town == "n" ? town= null;

    process...
}

是http: / myList中/芬兰/ 2 / myList中/芬兰/赫尔辛基/ 3 / myList / Finland / town / 7

2 个答案:

答案 0 :(得分:0)

您不能跳过该路线中的参数。您无法调用http://mylist/2并期望pageNumber取值2.第一段中的值将分配给路径中的第一个变量。因此2被分配给城市变量。您必须确保pageNumber之前的所有参数都获得非空值。

答案 1 :(得分:0)

只有路线定义中的最后一个参数才是可选的。