2014-02-21 5 views
0

간단한 문제 여야하지만 정확히 왜 그런지 모르겠습니다.@ Url.Action 기호를 해결할 수 없습니다.

내 ASP.NET MVC 5 웹 사이트에서이 함수에 일부 매개 변수를 보내는 js 함수를 호출하는 셀 동작과 표가있는 간단한보기가 있습니다.

function OnCellClick(param1, param2) { 
     var urlAJAX = @Url.Action("GetJson", "PosicaoEstoque", new { p1 = param1 , p2 =param2}); } 

이렇게하면 param1과 param2에 'Can not Resolve Symbols'가 표시됩니다. 어떻게 해결할 수 있습니까? 아래와 같은 Url.Action을 사용하지 않고

+0

안녕하세요 @ggui, @ Satpal의 답변 코드를 사용하여 궁금합니다. 실제로'GetJson' 메소드에서'p2'의 값을 얻을 수 있습니까? – Lin

답변

4

당신은 자리를 사용할 수 있습니다. 자리 표시 자 매개 변수를 사용하여 URL을 생성 한 후 귀하의 문제는 서버 측과 클라이언트 측 코드를 혼합하고 있다는 점이다

function OnCellClick(param1, param2) { 
    var urlAJAX = '@Url.Action("GetJson", "PosicaoEstoque", new { p1 = -1 , p2 = -2})'; 
    urlAJAX = urlAJAX.replace('-1', param1).replace('-2', param2); 
} 
+0

+1 좋은 답변 – ramiramilu

+0

예 기능은 클라이언트 쪽 양식이라고하고 서비스 쪽에서 URL을 할당하고 있습니다. 따라서 변수 param1과 param2는 javascript에서 사용할 수 없습니다. 그래서 그 자리 표시자를 가지고 대체하는 것이 더 – Thanigainathan

+0

안녕하세요 @ Satpal, 좋은 대답. 하지만 어떻게 OP가 action 메소드에서 매개 변수'p2 '를 얻을 수 있는지 궁금합니다. /PosicaoEstoque/GetJson? p1 = aaa & p2 = bbb와 같은 URL이 생성되기 때문입니다. – Lin

1

:

var urlAJAX = 'PosicaoEstoque/GetJson?p1=' + param1 + '&p2=' + param2; 
1

PARAM로 교체. Url.Action()에 JavaScript 변수를 넣을 수는 없습니다. 서버 측에서 실행되기 때문입니다. 당신은 할 수있는 몇 가지 더미 값을 매개 변수로 넣고 생성 된 URL에 대한 JavaScript의 replace() 함수를 호출합니다.

참조 용으로 this을 확인하십시오.

관련 문제