2012-03-06 5 views
2

Javascript에 "코드 숨김"변수를 전달하는 것에 대한 수많은 예제와 게시물을 찾았지만 그 반대의 경우가 있는지 궁금합니다.인라인 ASP.NET 코드에 javascript 변수를 전달할 수 있습니까?

필자는 ASP 도우미 클래스와 javascript의 변수를 사용하여 동적으로 URL을 만들려고합니다.

var url = '@Url.Action("' + actionname + '", "controller")'; 

... actionname는 다른 논리에 의해 미리 결정 : 내가 무엇을 하시겠습니까 같은 것입니다. 내가 인라인 코드를 분해 할 수 없기 때문에 이것은 작동하지 않을 것이다.

다른 사람이 전에 이와 같은 작업을 시도했거나 아이디어가 있습니까?

감사합니다.

+1

그건 불가능합니다. Javascript 변수는 클라이언트에만 있습니다. – SLaks

답변

1

actionname이 자바 스크립트 변수 인 경우 사용자가이 작업을 수행 할 수 없습니다. @Url.Action 메서드는 클라이언트에 반환되기 전에 서버 측에서 실행됩니다. 따라서 클라이언트에서 실행되는 javascript는 @Url.Action 호출에 정보를 보낼 수 없습니다.

이 경우에도 actionname을 arg로 전달하여 경로를 결정하는 작업을 수행 할 수 있습니다.

+1

코드가 실행되는 위치를 생각할 때이 점이 훨씬 의미가 있습니다. – Paul

3

지저분하지만 때로는 HiddenField을 사용하여 값을 전달했습니다.

ASP :

<asp:HiddenField id="hfStuff" runat="server" /> 

jQuery를 :

$("#<%= hfStuff.ClientID %>").val("my value"); 

당신은 코드 숨김에서 hfStuff.Value에 액세스 할 수 있습니다.

내가 말했듯이 어수선하지만 작업이 가끔 완료됩니다.

관련 문제