2016-08-22 6 views
0

의 route 속성에 다른 컨트롤러를 사용하면 [controller] 매개 변수를 사용하여 경로의 다른 컨트롤러를 참조 할 수 있습니까? 다른 컨트롤러의 경로를 기반으로 변경하고 싶은 컨트롤러가 있습니다.asp.net 코어

예 :

컨트롤러 1 :

[Route("[controller]")] 
public class Controller1:Controller{} 

컨트롤러 2 :

[Route("[controller1]/user/[controller]")]//how can I make this route refer to controller1? 
public class Controller2:Controller{} 
+0

구체적인 문제를 명확히하거나 추가 정보를 추가하여 필요한 것을 정확하게 강조하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. 이 질문을 명확히하기위한 [How to Ask] (http://stackoverflow.com/help/how-to-ask) 페이지를 참조하십시오. – Nkosi

답변

0

아니, 다른 컨트롤러 이름에 바인딩 [controller]을 얻을 수 없습니다. 라우터가 이미 선택한 컨트롤러를 나타냅니다.

[controller] 템플릿은 현재 실제로 가지고있는 예제 중 과 일치하지 않습니다.

[Route("[controller]")] 
public class TestController : Controller { } 

이 경로 /test 일치합니다 : 그것은 <Name>이 경로에서 토큰이 어디 패턴 <Name>Controller 일치하도록 시도합니다. (. Routing 문서에 자세히있다)

당신이 임의의 이름으로 당신의 경로를 접두사하려는 경우, 당신이 그들을 하드 코딩 할 수 있습니다

[Route("other/user/[controller]")] 
public class TestController : Controller { } 

/other/test 일치합니다. 당신이 문자열을 하드 코딩하지 않으려면

, 나는 상수를 사용하는 것이 좋습니다 것 :이 또한 /other/test 일치합니다

public const string OtherRoute = "other"; 

[Route(OtherRoute + "/[controller]")] 
public class TestController : Controller { } 

.