2013-07-17 3 views
12

아약스 호출에 필요한 URL을 올바르게 생성하기 위해 Url.Action 메서드를 사용하려고하지만 RouteValues를 빌드 할 때 문제가 발생했습니다. 여기에 문제가되는 코드 줄이 있습니다. 자바 스크립트에서 Url.Action 사용

var url = @Url.Action("ViewFile", "Default", new { itemId = $(this).data("itemid") }); 

당신이 볼 수 있듯이

, 나는 RouteValues에 itemId에 JQuery와 $(this).data("itemid") 의 결과를 할당하기 위해 노력하고있어.

이 코드를 컴파일 할 수 있도록 면도기 구문을 사용하는 방법이 있습니까?

답변

23

서버 쪽에서 클라이언트 쪽을 혼란스럽게합니다. 이런 식으로 뭔가를 시도 :

var url = '@Url.Action("ViewFile", "Default")?itemId=' + $(this).data("itemid"); 

당신이 면도기보기 엔진,이 명령의 끝 부분에있는 서버 측의 과정이 될 것입니다 명령을 작성으로 @을 쓸 때. 귀하의 경우에는 자바 스크립트에서 오는 URL에 매개 변수를 추가하고 싶으므로 @Url 도우미가 생성 한 URL 값과 클라이언트 측 연결 만 연결하면됩니다.

추신 : 기본 경로 표를 사용하고 있다고 가정합니다.

+3

아, 물론 jQuery를 늘 실행, 어떻게 나를 바보. 감사. 부끄러움을 당하다. – philreed

9

또 다른 방법은 장소 홀더를 만든 다음 그것을 대체하는 것입니다 : 서버 측 코드가 실행될 때

var url = '@Url.Action("GetOrderDetails", "Home", new { id = "js-id" })' 
       .replace("js-id", encodeURIComponent(rowId)); 
관련 문제