2014-07-22 3 views
0

나는 asp.net mvc를 사용하여 테이블에 많은 사용자를 표시해야하는 페이지를 작성하고 있습니다. 다음과 같은 URL로 페이지 뷰를 만들고 싶습니다. mypage.com/Customer/{pageno}/{sorttype}/{somethingelse}면도기는 URL을 조작합니다

URL은 페이지의 다른 위치에 있습니다. 예 : "다음 페이지"버튼은 {pageno}가 증가한 동일한 URL을 가지며 테이블 헤더는 {sorttype}이 다를 것입니다.

면도기에서 이것을 수행하는 좋은 방법이 있습니까? 아니면 원시 URL을 가져 와서 직접 파싱해야합니까?

감사합니다.

+0

http://msdn.microsoft.com/en-us/library/vstudio/cc668201(v=vs.100).aspx –

답변

1

URL 생성을 ASP.NET MVC 라우팅으로 남겨 두어야합니다. global.asax에서 고객 페이지의 경로를 올바르게 구성해야 pageno, sorttype 및 somethingelse 매개 변수를 사용할 수 있습니다.

그러면 Razor에서 URL이 생성되도록 간단하게 Url.Action (또는 Html.ActionLink) 메서드를 사용해야합니다. 당신은 당신의 경우 다음과 같은 과부하를 사용할 수 있습니다 http://msdn.microsoft.com/en-us/library/dd470197(v=vs.118).aspx

당신이 그것을 너무 복잡 @ Url.Action ("인덱스", "고객"새 {PAGENO = 1, sorttype = "유형"과 같은 물건을 쓰기 발견하면, somethingelse = "test"), Url.MyAction과 같은 다른 확장 메서드를 추가 할 수 있습니다.이 메서드는 3 개의 매개 변수 (int pageno, string sorttype, string somethingelse)를 취해 Url.Action을 내부적으로 호출합니다. 그러나 코드의 가독성이 놀라 울 정도로 줄어들 기 때문에 그렇게하지 않을 것을 제안합니다. Url.MyAction은 코드를 읽는 다른 개발자에게 새로운 것이지만 Url.Action 메서드는 모두가 알고 있습니다.

다시 키가 올바른 라우팅이므로 Url.Action()은 "/ Customer/1/type/test"로 렌더링됩니다. 아래 링크에서 자세한 내용을 확인할 수 있습니다.

+0

@Url을 사용하여 작업하십시오. RouteUrl을 사용하면 지정된 routeconfig 중 하나를 가리키는 매개 변수를 지정하여 1/something/23 형식을 가져올 수 있습니다. 감사. – stefan

관련 문제