我在分页时遇到错误,
我的行动:
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
您无法跳过该路线中的参数。您不能调用 http://mylist/2 并期望 pageNumber 取值 2。第一段中的值被分配给 路径中的第一个变量。因此 2 被分配给 city 变量。您必须确保 pageNumber 之前的所有参数都为非空值。
只有路由定义中的最后一个参数是可选的。