12
var boxIdValue = 233; 
var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=233}, null)'; 

boxId을 하드 코드하면 작동합니다. 그러나 내가 쓸 때 :면도기의 자바 스크립트 변수 ActionLink

var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=boxIdValue}, null)'; 

그것은하지 않는다. 이 방법으로 javascript var와 면도기를 혼합 할 수 있습니까?

답변

21

this related Stack Overflow 질문을 살펴보십시오.

이것이 어려운 이유는 런타임시 자바 스크립트가 클라이언트 브라우저에서 실행되는 동안 렌더링 시간에 웹 서버에서 Razor 메서드가 실행된다는 점입니다.

나는 두 번째 매개 변수가 없다면

var boxIdValue = 233; 
var link = '@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=-1}, null)' 
link = link.replace('-1', boxIdValue); 
var result = title + '<br />' + link; 
+0

처럼이 단지 작품을 뭔가를 수행하여이 문제를 해결합니다. 새로운 {boxId = -1, page = 1}과 같은 것이 실패합니다. &는 separator로 & nbsp; &으로 인코딩되고 페이지 매개 변수는 양이온에서 사용할 수 없습니다. 작동하려면 @ Html.Raw (Html.ActionLink ...)를 사용해야합니다. –