ASP.NET MVC 2 分页路由问题

问题描述 投票:0回答:2

我在分页时遇到错误,

我的行动:

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 }) 

城市 = 2 ??

我找到了解决方案如下:

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

http://myList/Finland/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/芬兰/town/7

pagination asp.net-mvc-2
2个回答
0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.