2017-02-07 2 views
0

URL의 전체 경로를 내 IActionResult의 변수로 반환하는 asp.net 코어에서 경로를 사용할 수 있습니까? 예를 들어asp.net 코어 라우팅 - 슬래시를 포함하는 URL 매개 변수 얻기

는 : https://example.com/services 함께

  1. 에서, 경로 변수가 동일한 에 대한 "서비스"https://example.com/services/cleaning 함께
  2. 경로 변수 같아야되어야하는 "서비스/청소"
  3. https://example.com/services/painting이면 경로 에 "서비스/그림"https://example.com/services/painting/interior
  4. 경로 변수가 "서비스/그림/인테리어"

같아야한다 동일 나는 내 Startup.cs

만 다음과 같은 경로가

이 예 1 작동하지만, 예 2, 3, 무시됩니다

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     "Redirect", 
     "{*path}", 
     new { controller = "Home", action = "Index", path = string.Empty } 
    ); 
}); 
및 4

어떻게 SLA의 수에 관계없이 경로가 작동하도록 얻을 수 있습니다 shes?


UPDATE : 내 문제는 내가 경로 정의 내 컨트롤러를 장식 한 것이 었습니다. 나는 그것을 제거하고 모든 것이 잘 작동합니다.

+0

요청 경로를 찾으려면 [HttpContext.Request'] (https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http/)에있는 것이 좋습니다. DefaultHttpContext.cs # L108) 개체입니다. 유망 해 보이는 ['.Path'] (https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/HttpRequest.cs#L54) 속성이 있습니다. –

+0

@DavidPine 내가 가지고있는 문제는 예제 2, 3, 4에서 빈 페이지가 생기는 것입니다. 그것이 그것이 유효한 길인 것을 발견하고 있지 않기 때문에 나는 추측하고있다. –

+0

올바른 가정은 –

답변

0

내 문제는 내가 내 컨트롤러를 경로 정의로 꾸몄다는 것이 었습니다. 나는 그것을 제거하고 모든 것이 잘 작동합니다.