如何在asp.net mvc中调用html.actionlink中的javascript函数?

时间:2010-05-18 09:44:13

标签: asp.net asp.net-mvc

如何在asp.net mvc中的html.actionlink中调用javascript函数?

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

6 个答案:

答案 0 :(得分:57)

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

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

你也可以用jquery / what给它一个id附加到它上面,像这样:

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


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

答案 1 :(得分:22)

要在您的操作链接中调用javascript,您只需编写这样的actionlink:

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

不要在路线值和html属性之间混淆。

答案 2 :(得分:8)

<a onclick="MyFunc()">blabla..</a>

在这种情况下,您可以使用@ Html.ActionLink中的其他内容。 而且剃刀本身就是它,从你可以的地方掉下来。

答案 3 :(得分:5)

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

答案 4 :(得分:1)

这是我在.cshtml文件中唯一有效的方法:

@Html.ActionLink(
   "Name", 
   "Action", 
   "Controller", 
   routeValues: null, 
   htmlAttributes:new Dictionary<string, object> {{ "onclick", "alert('Test');" }})

我希望这会有所帮助。

答案 5 :(得分:0)

这是一个很老的帖子,但实际上有一种方法可以做一个调用函数的onclick运算符,而不是去ASP.NET中的任何地方

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

如果您在控制器/操作中指定空引号等,它可能会添加指向您列出的内容的链接。你可以这样做,并在onclick中返回false。您可以在以下网址阅读更多相关信息:

What's the effect of adding 'return false' to a click event listener?

如果您正在cshtml文件中执行此操作,那么只需自己指定链接(一个href ...)就可以了,而不是让ActionLink处理它。如果你正在做一个HtmlHelper,就像我上面的例子来自,那么我认为调用ActionLink是一个好的解决方案,或者可能更好,就是使用tagbuilder。