2017-11-10 18 views
0

보고서가 포함 된 프로젝트가 있습니다.ASP.NET 핵심 REST URL 내에 매개 변수를 포함합니다.

:

http://../Projects/23/Reports 

나는 다음과 같은 링크를 사용하는 것이 특정 보고서를 보려면 다음 나머지에 모범 사례를 나는 모든 보고서를 나열하는 페이지로 다음과 같은 URL이 있어야합니다 것처럼 보인다 최대 읽기

http://../Projects/23/Reports/2 

나는 운없이 ASP 태그 도우미와 이러한 링크를 구축하기 위해 여러 가지 방법을 시도했습니다. 예를 들어 기본적으로

<a asp-page="/Projects/{pid}/Reports/{rid}" asp-route-pid="@item.ID" asp-route-rid="@report.ID" >View Report</a> 

그것은 ASP-route-는 *에 매개 변수로 해당 항목을 압정 것처럼 보인다 (즉, PID = 23 & 제거 = 2?) 그것은 작동 할 수 있지만이 아닌 것 같아 권장 URL

+0

문제는 당신이 면도기 페이지를 사용하고 있다는 것입니다. 경로가 파일 시스템을 기반으로하기 때문에 다른 것들 중에서도이 라우팅 스타일을 실제로 달성 할 수 없습니다. Razor Page를 많이 사용하는 많은 이유 중 하나 일뿐입니다. 코어 MVC로 가서 되돌아 보지 마라. –

답변

1

당신은 * .cshtml 파일의 @page 지시어 옆에 사용자 정의 면도기 페이지 라우팅을 정의 할 수 있습니다.

@page "{pid}/{rid}" 

이렇게하면 면도기 페이지가 Projects.cshtml 인 경우 다음과 같은 URL을 갖게됩니다.

/Projects/23/2 

URL에 정적 정보를 추가 할 수도 있습니다. 당신은 내가이 글에서 현재 언어를 정의하기 위해 그것을 어떻게 당신이 볼 수있는 모든 면도기 페이지에 대한 경로를 정의하려면

@page "{pid}/Reports/{rid}" 

이제 URL은

/Projects/23/Reports/2 

될 것입니다.

Asp.net core Localization always returns english clulture

는 나는 그것이 도움이되기를 바랍니다.

+0

나는 이것이 올바른 방향이라고 생각하고 파일들이 같은 디렉토리에 있다면 아마 작동 할 것이다. 하위 폴더에 보고서/색인이 있고 면도기 페이지 폴더 라우팅이 우선시 인 것 같습니다. 예를 들어이 태그 도우미 asp-page = "./ Reports/Index"asp-route-pid = "@ item.ID"및이 페이지 지시문 "{pid}/Reports"는 다음 URL을 생성합니다. .../Projects/Reports/130/Reports –

+0

점을 제거해보십시오. "./Reports/Index"대신 "/ Reports/Index"를 사용하십시오. – pitaridis