未调用 Html.ActionLink onclick JavaScript 函数且输出 HTML 中的函数名称已损坏

Yod*_*oda 1 html javascript asp.net-mvc razor

我查看了另一个问题:如何在 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>
Run Code Online (Sandbox Code Playgroud)

该功能如下所示:

<script>
    function Call(){
        alert("BLA");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但在两种情况下都没有显示警报(第一个和第二个按钮)。除此之外,操作链接有效。

问题:我做错了什么?

编辑:

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>
Run Code Online (Sandbox Code Playgroud)

该函数看起来应该:

<script>
    function Call(){
        alert("BLA");
    }    
</script>
Run Code Online (Sandbox Code Playgroud)

myk*_*kyi 5

您在错误的位置添加了 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>
Run Code Online (Sandbox Code Playgroud)