2017-04-03 2 views
0

문제는 목록을 사용하여 html 페이지를 채우지 만 페이징을 구현하려고합니다. 이제 첫 번째 페이지는 문제없이 렌더링되지만, 두 번째 페이지 버튼이나 그 밖의 다른 버튼을 누르 자마자 아무 것도 일어나지 않는 것처럼 빈 페이지가 나타납니다.# asp.net 두 번째 페이지가 표시되지 않습니다.

(나는 나머지는 정말 nenecessary없는 원인이 내 컨트롤러의 조각을 줄 것이다)

컨트롤러 :

//input is a textfield from the webview which hold the url I want to use 
public ActionResult RequestLinks(FormCollection input, int? page = null) { 
List<string> links; 

//FindLinks will give back a list of links retrieved from an url 
links = FindLinks(input["url"].ToString(), download); 
int pageSize = 25; 
int pageNumber = page ?? 1; 
ViewBag.links = links.ToPagedList(pageNumber, pageSize); 

return View(links.ToPagedList(pageNumber, pageSize)); 
} 

HTML을 호출기 :

@Html.PagedListPager((IPagedList)ViewBag.links, page => Url.Action("RequestLinks", new { page })) 

더 이상 정보가 필요한 경우 설명 또는 도움을 요청하십시오.

편집 :

어쩌면 그것은 등 경로 함께 할 수있는 뭔가가?

+0

ToPagedList 함수가 적합합니다. –

+0

@SamAxe PagedList 라이브러리의 일부입니다. 내 일반 목록을 IEnumerable로 변환합니다. – tribeldragon

답변

0

대답 # 1 :

난 당신이 사용하는 경우 Url.Action(..) 당신은 당신이 통과 경로 값 매개 변수의 각각의 이름을 제공 할 필요가 있다고 생각합니다. 여기

@Html.PagedListPager((IPagedList)ViewBag.links, pageNumber => Url.Action("RequestLinks", new { page = pageNumber })) 

내가 원하는 가정 술어에서 변수의 이름이 pageNumber를 사용하여 명시 적으로 I가 설정하려고 경로 파라미터의 이름으로 page 명명하고있어 예를 들면

동작은 다음과 같습니다

public ActionResult RequestLinks(int? page = null) { 
    // ... 
} 

대답 # 2 :

링크를 다운로드하려면 URL을 항상 통과시켜야하며, 현재 예제에서는 링크가 다운로드되어 있지 않아야합니다. FormCollection input은 링크를 따라갈 때 존재하지 않으며, 처음에는 POST 이후에만 나타납니다.

당신의 행동 변화 할 수 있어야한다 :

public ActionResult RequestLinks(string url, int? page = null) { 

    // Store it. 
    ViewBag.url = url; 

    // Everything else 
    // ... 

} 

을 다음보기에서 :

@Html.PagedListPager((IPagedList)ViewBag.links, pageNumber => Url.Action("RequestLinks", new { url = ViewBag.url, page = pageNumber })) 

어떤 같은 링크를 생성해야합니다 (몇 가지 가정을 만들기) :

/{controller}/RequestLinks?url=http://google.com&page=3 
+0

슬프게도 이것이 나를 위해 작동하지 않습니다, 결과는 동일합니다. 그 사이에 정확히 같은 값을 추가하는 것처럼 보입니다. – tribeldragon

+0

@tribeldragon 컨트롤러 동작 메서드 서명을 질문에 추가 할 수 있습니까? –

+0

바라기를 나는 옳은 것을 첨가했다. – tribeldragon

관련 문제