@ URL.Action () 내에서 자바 스크립트 변수에 액세스하는 방법
내부에서 JavaScript 값에 어떻게 액세스 할 수 @URL.Action()
있습니까? 같은 것 :
<script type="text/javascript">
function name(myjavascriptID)
{
jQuery("#list_d").jqGrid('setGridParam', { url: '@URL.Action("download file", "download", new { id = <myjavascriptID> })', page: 1 });
}
</script>
당신은 할 수 없습니다. 작업 URL을 생성 할 때 JavaScript가 실행되지 않습니다. 할 수있는 일은 다음과 같이하는 것입니다.
function name(myjavascriptID) {
var link = '@Url.Action("download file", "download", new { id = "-1" })';
link = link.replace("-1", myjavascriptID);
jQuery("#list_d").jqGrid('setGridParam', { url: link, page: 1 });
}
HTH.
나는 상당히 비슷하지만 덜 장황한 일을한다.
var myUrl = '@Url.Action("Solution","Partner")/' + myjavascriptID;
$.ajax.load(myUrl); // or whatever
라우팅으로 인해이 작업을 수행 할 수 있으며 궁극적으로 경로 사전 매개 변수가있는 Url.Action은 다음과 같은 URI로 변환됩니다.
http://localhost:41215/Partner/Solution?myJavascriptID=7
두 번째 선택입니다. 현명한 노인이 한때 "우리가 진정 무엇인지 보여주는 것은 우리의 능력보다 훨씬 더 많은 우리의 선택입니다."
아래와 같이 모든 링크에 변수를 전달할 수 있습니다.
var url = '@Html.Raw(@Url.Action("MethodName", "ControllerName"))' + '?id = ' + myjavascriptID
다음과 같은 방법으로 C #에서 JavaScript 코드를 빌드 할 수 있습니다.
function fun(jsId) {
var aTag = '<a href="@Html.Raw(@Url.Action("ActionName", "ControllerName", new { objectId = "xxx01xxx" }).Replace("xxx01xxx", "' + jsId + '"))">LINK</a>';
}
다음은이 기술을 사용하여 다시 작성된 질문의 코드입니다.
function name(myjavascriptID) {
jQuery("#list_d").jqGrid('setGridParam', { url: '@Html.Raw(@URL.Action("download file", "download", new { id = "XXXmyjavascriptIDXXX" }).Replace("XXXmyjavascriptIDXXX", "' + myjavascriptID + '"))', page: 1 });
}
Brian Mains의 대답과 같은 맥락에서 -1을 변수로 바꾸는 대신 URL 문자열을 형식화 할 수 있습니다. 즉, 저처럼 읽는 것이 더 낫다고 판단 할 수 있습니다. 다음 답변은 이 답변String
에서 제안한대로의 프로토 타입을 수정했다고 가정합니다 .
var url = unescape('@Url.Action("download file", "download", new { id = "{0}" })').format(myjavascriptID);
unescape
당신이 당신을 디코딩 할 경우 호출이 필요합니다 {0}
. JS 변수에서 여러 매개 변수를 더 쉽게 가질 수 있기 때문에이 대안을 좋아합니다. 예를 들면 :
var url = unescape('@Html.Raw(Url.Action("Action", "Controller", new { id = "{0}", name = "{1}" }))').format(myID, myName);
URL 문자열에 포함 Html.Raw
되지 않도록 두 번째 예제에 추가 했습니다 &
.
아래 코드와 같이 URL을 바꿀 수 있습니다.
var jsUrl = '@Url.Action("action", "controller")'; // ## is the token
var getUrl = jsUrl.replace('action', action).replace('controller', controller)
$("#RenderPartial").load(getUrl);
참고 URL : https://stackoverflow.com/questions/6456703/how-to-access-javascript-variable-within-url-action
'developer tip' 카테고리의 다른 글
__str__ 및 __repr__의 목적은 무엇입니까? (0) | 2020.10.26 |
---|---|
Cmake가 Boost를 찾지 못함 (0) | 2020.10.26 |
jquery를 사용하여 라디오 그룹에서 값 가져 오기 (0) | 2020.10.26 |
컨테이너가 메모리 제한을 초과하여 실행 중입니다. (0) | 2020.10.26 |
'빈'생성자 또는 소멸자는 생성 된 생성자와 동일한 작업을 수행합니까? (0) | 2020.10.26 |