들어오는 URL을 표준 MVC 라우팅 논리로 전달하기 전에 일부 사전 처리를 위해 구성 요소 부분으로 구문 분석하고 싶습니다. 예를 들어 표준 경로URL을 복합 구성 요소로 구문 분석 할 수 있습니까?
{controller}/{action}/{id}
과 URL
/user/show/10
라우팅 시스템이 해당 값으로 컨트롤러, 액션 및 ID 키를 포함하는 사전을 반환해야 할 수있는 방법이 있나요 주어진?
들어오는 URL을 표준 MVC 라우팅 논리로 전달하기 전에 일부 사전 처리를 위해 구성 요소 부분으로 구문 분석하고 싶습니다. 예를 들어 표준 경로URL을 복합 구성 요소로 구문 분석 할 수 있습니까?
{controller}/{action}/{id}
과 URL
/user/show/10
라우팅 시스템이 해당 값으로 컨트롤러, 액션 및 ID 키를 포함하는 사전을 반환해야 할 수있는 방법이 있나요 주어진?
그것은, 라우팅 시스템은 응용 프로그램 시작시에 초기화됩니다 아주 간단하고, 현재의 상황에 따라 경로 데이터를 계산하므로 언제든지 상황 자체는 모든 좋은 것, 전류이다. Global.asax에의 Application_BeginRequest 방법에
, 예를 들어, 당신과 같이 현재 경로 데이터를 얻을 수 있습니다 :var routedata = RouteTable.Routes.GetRouteData(new HttpContextWrapper(Context));
차례 차례로으로 RouteData는 값의 속성에 저장된 현재 요청에 대한 RouteValueDictionary을 가지고 있으며, DataTokens 속성에 저장된 데이터 토큰이 있습니다.
폴
시간을 정해 놓고 일정을 잡아야하지만 정확히 내가 겪은 것처럼 보입니다. –
MVC가 이미이 작업을 수행합니다. 컨트롤러 내부의 RouteData 속성에 액세스 할 수 있습니다.
MVC 라우팅 논리 앞에 경로 데이터를 가로채는 위치를 정의한 경우 더 잘 대답 할 수 있습니다.
저는 이것을 고려 했습니다만, 현재 HttpApplication.BeginRequest 메소드의 URL로 작업하고 있습니다. 이것은 라우팅 시스템이 URL에 도달하기 전에 호출됩니다. 나는 단순히 일부 라우팅 메소드를 호출하고 url에서 RouteData를 반환하는 방법이 있기를 바랬다. –
문자열을 '/'문자로 분리하려고 했습니까? 그러면 경로 부분의 서수 배열이 생깁니다.
var parts = url.substring(1).Split('/');
var controller = parts[0];
var action = parts[1];
var id = parts[2];
나는 라우팅 시스템이 그것을 어떻게 보는지 정말로 알 필요가있다. 사용중인 경로 중 일부는 여러 매개 변수가 있으므로 URL 분할은 제대로 작동하지 않습니다. –
조회 UrlTemplate, UrlTemplateMatch. –
@ 존 : 그냥 시도하고 ... Google 검색 결과를 반환 ....이 질문 :) 당신은 세부 답변을 게시할까요? –
나는 그 (어제)에 대해 읽었으며 사용하지 않았다. http://msdn.microsoft.com/en-us/library/bb675245.aspx를 참조하십시오. –