2014-10-09 3 views
5

작업 필터의 속성 라우팅에서 경로 이름을 얻는 방법을 아는 사람이 있습니까? 예를 들어ASP MVC5의 속성 라우팅에서 경로 이름을 얻는 방법

나는 컨트롤러가이 같은 경로를 속성 :

[HttpGet] 
[CustomActionAttribute] 
[Route("~/index", Name="IndexPage")] 
public async Task<ActionResult> Index() 
{ 
    //Controller logic 
} 

는 CustomActionAttribute에서 경로 이름을 얻을 수 있습니까?

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    //Get the current route name here 
} 

답변

1

이렇게하려면 RouteCollection을 확장 할 수 있습니다. 이 예제 코드는 here

+0

입니다. 그렇다면 사용자 지정 속성 경로 속성을 가져야한다는 의미입니까? – Wei

+1

소스 코드를 파고 들자 RouteCollection 클래스의 private 필드에 경로 이름 매핑이 저장된다는 것을 알게되었습니다. private Dictionary _namedMap = new Dictionary (StringComparer.OrdinalIgnoreCase); 그래서 나는 우리가 그것에 접근 할 수 있다고 생각하지 않는다. 가능한 유일한 방법은 제안 할 때 우리 자신을위한 것입니다. 다른 아이디어? – Wei

+0

내가 지금까지 읽은 것에서 그것은 가장 고통스러운 방법으로 보인다. –