【问题标题】:embedding javascript variable within razor syntax在 razor 语法中嵌入 javascript 变量
【发布时间】:2010-12-02 06:18:49
【问题描述】:

我有一个看起来像这样的方法

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

当然它不起作用,因为它将“leadid”视为服务器端变量,但我想将传递给方法的 javascript 变量注入。

我尝试将潜在客户 ID 包含在内,但没有成功。

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

有什么想法吗?

【问题讨论】:

    标签: javascript asp.net-mvc razor


    【解决方案1】:

    您不能将 javascript 变量注入在服务器上评估的脚本,因为在该脚本执行并生成输出时,该变量尚未出现。实现这一点的唯一方法是操作生成的字符串:

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

    缺点是这假设在 javascript 中操作路由,如果您决定在服务器上更改它们,代码可能会中断。

    【讨论】:

    • 你是对的。现在我想起来了。那是一个非常愚蠢的问题 :)... 有趣的是,我从服务器变量中计算出leadid,所以我可以简单地使用它。我发帖时是凌晨 3 点;)。感谢您的帮助。
    【解决方案2】:

    我终于找到了解决方案(*.vbhtml):

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

    【讨论】:

      猜你喜欢
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 2017-11-23
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多