ASP.NET MVC 2 Пейджинговая проблема маршрута - PullRequest
0 голосов
/ 24 января 2011

Я получаю ошибку при поиске,

мои действия:

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 / Финляндия / с / п / 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 / Финляндия / город / 7

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Только последний параметр в вашем определении маршрута может быть необязательным.

0 голосов
/ 24 января 2011

Вы не можете пропустить параметры в этом маршруте.Вы просто не можете вызвать http://mylist/2 и ожидать, что pageNumber примет значение 2. Значение в первом сегменте назначается первой переменной в маршруте .Таким образом, 2 присваивается переменной города.Вы должны убедиться, что все параметры прежде, чем pageNumber получит ненулевое значение.

...