【问题标题】:Call javascript function in c# actionlink在 c# actionlink 中调用 javascript 函数
【发布时间】:2015-12-30 19:59:47
【问题描述】:

我试图将此代码重写为 c# 只是为了教育目的,但我无法让它工作 :( 我错过了什么?

<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>

这是我已经走了多远:

 @Html.ActionLink("Log off", "", "", new { onclick = "LogOutLink();" })

和javascript:

 <script>
function LogOutLink() {
    document.getElementById('logoutForm').submit();
}
</script>

我错过了什么?因为我不希望链接调用任何特定的视图或控制器,所以我只是将它们留空,如您所见,但它仍然想调用该函数

【问题讨论】:

    标签: javascript asp.net html.actionlink


    【解决方案1】:

    您只需将其重写为:

    @Html.ActionLink("Log off", "", "", new { }, new { onclick = "LogOutLink(); return false;" })
    

    如果你参考这个MSDN document,你会注意到第4个参数是路由值,第5个参数是HTML属性。



    如果你已经加载了 jQuery,你也可以使用 jQuery 来做:

    @Html.ActionLink("Log off", "", "", new { id = "LogOffId" });
    

    在您的 javascript 中,添加:

    $(function(){
        $('#LogOffId').on('click', function(){
            $('#logoutForm').submit();
        }
    });
    

    【讨论】:

    • 谢谢,但链接只是把我带回到我的起始页,可能是 javascript 的错误?
    • @PerKällström 添加 'return false;' 时会发生什么在 onclick 结束时。换句话说,“LogOutLink(); return false;”
    • 10 块饼干给你先生,你是我今天的救星!
    • @PerKällström 很高兴我能帮助先生。我还为可能遇到相同问题的其他人添加了 jQuery 方法。
    • 如何在链接中添加 id?如添加另一个 htmlproperty 或自 new { onclick = "LogOutLink(); return false;" } 占用那个,我可以有 2 个属性吗?
    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多