如何在ASP.NET MVC的html.actionlink中调用javascript函数?

how to call javascript function in html.actionlink in asp.net mvc?

如何在ASP.NET MVC的html.actionlink中调用javascript函数?

我想调用Java脚本中的一种方法,但是如何在同一页面的html.actionlink中调用它
提前致谢


您需要使用htmlAttributes匿名对象,如下所示:

1
<%= Html.ActionLink("linky","action","controller", new { onclick ="someFunction();"}) %>

您还可以使用jquery /其他方式为其附加一个ID,如下所示:

1
2
3
4
<%= Html.ActionLink("linky","action","controller", new { id ="myLink" }) %>


$('#myLink').click(function() { /* bla */ });


为了在动作链接中调用javascript,您只需要编写如下的actionlink:

1
2
@Html.ActionLink("Delete","Your-Action", new { id = item.id },
                 new { onclick="return confirm('Are you sure?');"})

不要混淆路由值和html属性。


1
blabla..

在这种情况下,您可以利用@ Html.ActionLink中的更多内容。
剃须刀本身就是一个边缘,将其从您可以的地方放下。


1
@Html.ActionLink("Edit","ActionName",new{id=item.id},new{onclick="functionname();"})

这是一个旧文章,但是实际上有一种方法可以执行一个onclick运算符来调用一个函数,而不是在ASP.NET中的任何地方

1
2
helper.ActionLink("Choose", null, null, null,
    new {@onclick ="Locations.Choose(" + location.Id +")", @href="#"})

如果您在控制器/操作中指定了空引号或类似内容,则可能会向您列出的内容添加一个链接。您可以这样做,并在onclick中返回false。您可以在以下位置了解更多信息:

向点击事件侦听器添加return false有什么作用?

如果要在cshtml文件中执行onclick,则直接指定链接(a href ...)而不是由ActionLink处理该链接会更干净一些。如果您正在使用HtmlHelper(例如上面的示例),那么我认为调用ActionLink是一个好的解决方案,或者可能会更好,而是使用tagbuilder。


这是.cshtml文件中唯一对我有用的文件:

1
2
3
4
5
6
@Html.ActionLink(
  "Name",
  "Action",
  "Controller",
   routeValues: null,
   htmlAttributes:new Dictionary<string, object> {{"onclick",";" }})

我希望这有帮助。