2009-11-20 1 views
1

NerdDinner ASP.NET에서 사용되는 것과 동일한 페이지 매김을 구현하려고합니다. 나는 매김이에 걷어차 시작할 때마다 내보기에 다음과 같은 오류가 발생하고있다. ASP.NET MVC의 페이지 매김 관련 문제

는 " '지수'라는 이름의 경로 이 경로 컬렉션을 찾을 수 없습니다."

오류가 라인에 무슨 일이 일어나고 64

Line 62:   <% if (this.Model.HasNextPage) 
Line 63:   { %> 
Line 64:   <%= this.Html.RouteLink("Next Page >>>", "Index", new { page = (this.Model.PageIndex + 1) })%> 
Line 65:   <% } %> 
Line 66:  </div> 

내 컨트롤러 코드는 다음과 같습니다

[Authorize] 
public ActionResult Index(int? page) 
{ 
    const int pageSize = 25; 

    var topics = this.TopicRepository.FindAllTopics(); 
    var paginatedTopics = new PaginatedList<Topic>(topics, page ?? 0, pageSize); 

    return this.View(paginatedTopics); 
} 

내보기 코드는 ...

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CreativeLogic.Sauron.WebMvc.Helpers.PaginatedList<CreativeLogic.Sauron.WebMvc.Models.Topic>>" %> 

<!-- Code to display the list here --> 

<div class="pagination"> 
    <% if (this.Model.HasPreviousPage) 
     { %> 
    <%= this.Html.RouteLink("<<< Previous Page", 
          "Index", new { page = (this.Model.PageIndex - 1) }) %> 
    <% } %> 
    <% if (this.Model.HasNextPage) 
     { %> 
    <%= this.Html.RouteLink("Next Page >>>", 
          "Index", new { page = (this.Model.PageIndex + 1) })%> 
    <% } %> 
</div> 

이것은 내 먼저 ASP.NET MVC에서 페이지 매김을 시도합니다 ... 더 나은 WA가있는 경우 y, 나에게 알려줘, 그렇지 않으면, 내가 여기서 어디로 잘못 가고있는거야?

감사합니다.

답변

3

경로 이름을 사용하는 RouteLink를 사용하지 말고 대신 색인과 같은 작업 이름을 사용하는 ActionLink를 사용해야합니다.

+0

그 트릭을 했어! 왜 그들이 NerdDinner 예제에서 RouteLink를 사용하고 있는지 궁금합니다. – mattruma

2

글쎄, RouteLink Extension Method는 Global.asax에서 "Index"라는 이름으로 정의 된 경로를 찾고, 기본적으로 "Default"글로벌에 정의 된 경로는 단지 하나뿐입니다 :

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
      ); 

아마도 HakonB는 ActionLink 확장 메서드를 사용하거나 페이지 매김을 위해 Global asax에서 경로를 정의해야한다고 말했을 수도 있습니다.

+0

+1 설명해 주셔서 감사합니다. – mattruma