Html.ActionLink onclick JavaScript 函数未被调用,并且函数名称在输出 HTML 中已损

Html.ActionLink onclick JavaScript function is not invoked and name of function is corrupted in output HTML

本文关键字:函数 输出 HTML JavaScript onclick ActionLink 调用 Html      更新时间:2023-09-26

我看了另一个问题:如何在 asp.net mvc 中调用 html.actionlink 中的 javascript 函数?展示了如何将onclick添加到@Html.ActionLink但在我的情况下,我分配给onclick的函数从未被调用过。

我尝试了这些操作链接:

<p>@Html.ActionLink("Call number", "Call", new { id = Model.Id, number = Model.CellNumber, onclick = "javascript:alert(a);" }, new { @class = "btn btn-default" })</p>
<p> @Html.ActionLink("Call number »", "Call", new { id = Model.Id, number = Model.SecondaryPhoneNumber, onclick = "javascript:Call();" }, new { @class = "btn btn-default" })</p>

函数如下所示:

<script>
    function Call(){
        alert("BLA");
    }
</script>

但在这两种情况下都没有显示警报(第一个和第二个按钮(。除了那个动作链接

问题:我做错了什么?

编辑:

html中的操作链接看起来像这样,外观已损坏:onclick=Call%28%29%3B

<p><a class="btn btn-default" href="/Person/Call/7?number=113-456-789&amp;onclick=alert%28a%29%3B">Call Cell Phone</a></p>
<p> <a class="btn btn-default" href="/Person/Call/7?number=98873213&amp;onclick=Call%28%29%3B">Call Client&#39;s Secondary Number &#187;</a></p>

该函数看起来应该:

<script>
    function Call(){
        alert("BLA");
    }    
</script>

您在错误的位置添加了 onclick 处理程序。您必须将其放在Html Attributes块中,而不是Route values .试试吧:

<p>@Html.ActionLink("Call number", "Call", new { id = Model.Id, number = Model.CellNumber }, new { @class = "btn btn-default", onclick = "alert('a');" })</p>