embedding javascript variable within razor syntax

亡梦爱人 提交于 2019-12-30 08:16:56

问题


I have a method that looks like this

function endcall_click(leadid) {
    document.location = '@Url.Action("index","dispo",new{id=leadid})/';
}

Of course it doesn't work because it treats "leadid" as a server side variable but I want to inject the javascript variable passed into the method.

I tried wrapping lead id in but that didn't work.

function endcall_click(leadid) {
    document.location = '@Url.Action("index","dispo",new{id="<text>leadid</text>"})/';
}

Any ideas?


回答1:


You can't inject javascript variable to a script that is evaluated at the server simply because at the moment this script executes and generates the output this variable hasn't yet come to existence. The only way to achieve this is to manipulate the resulting string:

function endcall_click(leadid) {
    document.location = '@Url.Action("index", "dispo")/' + leadid;
}

The drawback is that this assumes manipulating the routes in javascript and if you decide to change them on the server the code might break.




回答2:


I finally found the solution (*.vbhtml):

<script type="text/javascript">
function razorsyntax() {
    /* Double */
    @(MvcHtmlString.Create("var szam =" & mydoublevariable & ";"))
    alert(szam);

    /* String */
    var str = '@stringvariable';
    alert(str);
}
</script>


来源:https://stackoverflow.com/questions/4332253/embedding-javascript-variable-within-razor-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!