2011-01-27 3 views
0

ASP.NET MVC에서 "catch the rest"경로를 만드는 방법을 배우고 싶습니다.
형식화 된 URL을 가져 와서 값의 일부 데이터를 읽고 링크의 나머지 부분을 가져 와서 일부 변수에 저장하여 나중에 읽을 수 있도록 링크를 생성해야합니다.
blog.mydomain.com/linker/process/2612010/2828/en/articles/october/asking-the-overflow/madd.aspxASP.NET MVC가 경로 URL의 나머지 부분을 잡습니다.

읽기와 같은 :
MEMBERID = 2612010
memberrating = 2828
언어 =
restofurl EN = "기사 월/10 월/물어 - 더 - 오버 플로우/madd.aspx"


또는 링크 : blog.mydomain.com/linker/process/2612010/2828/en/articles /october/read.aspx?m=828

,451,515,

읽기와 같은 :

MEMBERID = 2612010
memberrating = 2828
언어 =
restofurl EN = "기사/월/read.aspx m = 828"


또는

blog.mydomain.com/linker/process/2612010/2828/en/articles
to :
같은MEMBERID = 2612010
memberrating = 2828
언어 =
restofurl EN = "기사"


나는 생각했습니다 뭔가 :

routes.MapRoute(
      "Linker", // Route name 
      "Linker/Process/{memberid}/{memberrating}/{lang}/{*other}", // ULR with parameters 
      new { controller = "Linker", action = "Process", lang = "en", other = UrlParameter.Optional} 
     ); 

이 경로의 나머지를 집어 들고 링크가 올바르게 표시되지만 URL 매개 변수는 다음과 같이 끝납니다. blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828

표시되며 "restofurl"값으로 개/october/read.aspx
으로 표시됩니다.
고전적인 url get params assignet을 아무것도 필요로하지 않고 그냥 restofurl 변수의 일부가되기를 원합니다.

+0

왜 내가 restofurl 변수를 포함하는 줄에서 굵게 글씨를 지울 수 없는지 모르겠다. 어떤 형식화도 사용하지 않았습니다 ... – BuzzBubba

+1

'---'한 줄 아래에 헤더가 생성됩니다. – SLaks

답변

1

나는 직접 답변을하겠습니다.

var restofurl = 
String.Format("{0}?{1}", RouteData.Values["other"], Request.QueryString); 

올바른 URL을 효과적으로 구성합니다. 만약 당신이 그것을하는 "깨끗한/더 좋은"방법을 찾으면, 게시하십시오.

관련 문제