RouteConfig에서 Routing Attributes로 전환하려고합니다.MVC5 라우팅 속성 다시 작성 - 기본 페이지
저는 Adam Freeman의 Pro ASP.NET MVC 5 서적을 읽고 있는데 클라이언트의 페이징을 처리하는 다음 코드를 변환하려고합니다.
routes.MapRoute(
name: null,
url: "{controller}/Page{page}",
defaults: new { action = "Index", status = (string)null },
constraints: new { page = @"\d+" }
);
위대한 작품입니다. 내가 다른 URL로 이동으로, 링크는
http://localhost:65534/Client - Default page
http://localhost:65534/Client/Page2 - Second page
지금 내가 URL 속성을 시도하고 그것이 어떻게 '꽤'링크가 올 때 문제의 비트를 가지고하기로 결정했습니다 아주 예뻐요. 모든 링크가 정상적으로 작동하지만 문제를 해결하려고하는 '라우팅 재 작성'입니다.
다음은 컨트롤러의 중요한 부분입니다. 인덱스 위의 속성을 가진
[RoutePrefix("Client")]
[Route("{action=index}/{id:int?}")]
public class ClientController : Controller {
[Route("Page{page:int?}")]
public ActionResult Index(string sortOrder, string search = null, int page = 1) {
는/클라이언트/또는 클라이언트에/페이지가 기본 페이지를
[Route("Page{page:int?}")]
[Route]
작품을 잡으려고 빈 경로를 추가하는 나에게 (404)
을 제공합니다 것/Client와/Client/Page3에 대한 것이었지만 이제는 URL의 재 작성이 엉망입니다. 호출기의 3 페이지를 클릭하면 URL이
http://localhost:65534/Client?page=3
이고 원하는 것은 아닙니다.
[Route("Page{page:int?}")]
[Route("{page=1:int?}")]
로 경로를 변경하면 거의 100 % 작동하지만/클라이언트의 기본 링크는 그래서, 지금 도움을 요청하고 지금
http://localhost:65534/Client/Page
입니다. 원본 MapRoute을 속성으로 올바르게 변환하려면 어떻게해야합니까?
이전에는 '주문'속성을 사용해 보았습니다. 나는 여전히 ** Client? page = 3 **을 얻고 순서를 변경해도 문제가 발생하지 않는다. –
위 업데이트를 참조하십시오. –
추가 설명은 Chris에게 감사드립니다. 이것은 URL 리다이렉션에 대한 속성의 사용을 완전히 무효화하고 무의미한 기능으로 만듭니다. PagedList.MVC에 가서 이름 속성을 추가 할 가능성은 없습니다. RoutingConfig 파일로 돌아가겠습니다. –