ASP.NET MVC C # Маршрутизация - передача нулевого целого числа - PullRequest
3 голосов
/ 25 марта 2011

Я работаю с MVC 3 в веб-приложении и сталкиваюсь с проблемой маршрутизации.

Я определяю свой обработчик маршрутизатора следующим образом:

           routes.MapRoute(
           "Users", 
           "{controller}.aspx/{action}/{id}/{page}", // URL with parameters
           new { controller = "Users", action = "Details", id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
       );

url: http://app.domain/Users.aspx/Details/114142/5 (пример)

Я успешно получаю идентификатор пользователя, но не могу получить номер страницы.

Контроллер пользователейинициализируется так:

           public ActionResult Details(long id, int? page)

Страница всегда возвращает ноль (мне нужна страница в виде нулевого целого числа).

И я неправильно определил маршрут?

Спасибо

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

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

Итак:

routes.MapRoute(
    "Users", 
    {controller}.aspx/{action}/{id}/{page}",
    new { 
        controller = "Users",  
        action = "Details", 
        page = UrlParameter.Optional 
    }
);

, а затем: /Users.aspx/Details/114142/5 успешно отобразится на

public ActionResult Details(long id, int? page)
{
    ...
}
0 голосов
/ 25 марта 2011

Вы используете неправильный URL. Попробуйте это:

http://app.domain/Users.aspx/Details/114142?page=5
...