URL (ASP.NET MVC)에서보기 내 현재 경로 ID를 얻는 방법 1 (controller / action / id의 기본

/ Controller / Action / 1 (controller / action / id의 기본 경로 가정)과 같은 URL에서 반환 된보기 내에서보기 내에서 ID에 액세스하려면 어떻게해야합니까?

요청을 처리 할 때 작업 수준에서 ViewData 사전에 추가 할 필요가 없습니다.



답변

나는 이것이 당신이 찾고있는 것이라고 생각합니다.

<%=Url.RequestContext.RouteData.Values["id"]%>


답변

ViewData는 정확히이 작업을 수행하는 올바른 방법입니다.

다른 옵션은 ID가 포함 된 모델을 뷰에 전달하는 것입니다.

편집 : 당신이 무엇을하려고하는지 정확히 알지 못하면 더 구체적인 조언을 제공하기가 어렵습니다. ID는 필요하지만 다른 모델 데이터는 필요하지 않은 이유는 무엇입니까? 컨트롤러가 실제로 Id 필드를 뷰로 전송하고 있습니까? 시나리오가 무엇인지 상상하기 어렵습니다.

ID 값이 실제로 뷰에 전달되는 유일한 모델 정보 인 경우 ID 자체를 모델로 사용할 수 있습니다. 그러면 작업 메서드의 반환 값은 다음 View(id)과 같을 것이며 ViewData를 사용할 필요가 없습니다.


답변

뷰 데이터에 추가하는 것은 올바른 일입니다. 추가하는 방법에 관해서는 항상 ActionFilter경로 사전에서 가져 와서 뷰 데이터로 푸시 하는 사용자 지정 을 추가 할 수 있습니다 .


답변

우리는 전달할 수 idRoute Data또는QueryString 그렇게하기 위해, 둘 다 지원 내가이 방법을 권장합니다 :

var routeValues=Url.RequestContext.RouteData.Values;
var paramName = "id";
var id = routeValues.ContainsKey(paramName)?
         routeValues[paramName]:
         Request.QueryString[paramName];


답변

URL 작업 Url.RequestContext.RouteData.Values ​​[ “id”]에서 직접 사용할 수 있다고 생각합니다.


답변

.NET Core를 사용하는 경우

이 코드 사용

Url.ActionContext.RouteData.Values["id"]


답변

Razor의 간단한 답변 :

@Url.RequestContext.RouteData.Values["id"]

ASP.NET Core에서

@Url.ActionContext.RouteData.Values["id"]