2009-12-09 1 views
1

Я пытаюсь реализовать простой прогон, основанный на How do I do pagination in ASP.NET MVC?asp.net mvc: Пейджинг - настройка значений Prev/Next page в ActionLinks?

Пейджинг работает нормально.

Однако, сейчас я пытаюсь создать предыдущие и следующие ссылки, но не могу понять, как получить доступ к Params:

Мой маршрут выглядит так:

routes.MapRoute(
     "Name", 
     "Controller/ActionName/{pageID}", 
     new { controller = "Controller", action = "ActionName" , pageID = 0 }, 
     new { pageID = @"\d*"} 
    ); 

И мой следующей ссылке выглядит следующим образом:

<%=Html.ActionLink("next page", "ActionName", "Controller", new {pageID = pageID + 1 }, null) %> 

ошибки я получаю:

Compiler Error Message: CS0103: The name 'pageID' does not exist in the current context 

Как создать ссылки Prev/Next (или, в данном случае, только следующий)?

ответ

1

ошибка происходит на втором PageId в

new {pageID = pageID + 1 }, ... 

Если вы хотите сослаться PageId таким образом, вы должны передать его в качестве части вашей модели.

Взгляните на следующем уроке:

NerdDinner Шаг 8: Поддержка пейджинга
http://nerddinnerbook.s3.amazonaws.com/Part8.htm

+0

ли еще можно использовать этот подход, используя строго типизированные взгляды? Я получаю сообщение об ошибке «System.Collections.Generic.IEnumerable » не содержит определения для «HasPreviousPage» – chris

+0

Посмотрите внимательно на модель NerdDinner. Там есть более одного объекта. –

+0

Так что все сводится к тому, что я не могу делать то, что хочу. У меня нет реальных проблем с использованием ViewData, я просто надеялся, что есть простой способ получить доступ к переменным маршрута. Благодарю. – chris