从html.actionlink在外部页面上调用jQuery函数

时间:2020-09-27 17:11:02

标签: c# jquery model-view-controller

我有一个类似的动作链接:

@html.actionlink("link", "action", "controller", new { id = item.id }

我希望此链接在外部页面上调用jQuery函数。我尝试使用onclick,但是它总是使用默认的控制器操作方法,而@class也是如此。

我想知道我可以这样使用它吗:

@html.actionlink("link text", null, null, new { id = item.id }, new { onclick = "myfunction() }

这仍然没有调用jQuery函数,我在做什么错了?

这是我的html超链接

@ item.ProductID.ToString()

和下面是我的jquery脚本位于外部js文件中

$(document).ready({
function showdetails(id)
{
alert("you clicked me")
});

1 个答案:

答案 0 :(得分:0)

如果只想让它运行jQuery函数而不是转到控制器,那么使用actionLink帮助器是没有意义的-这样做的整个目的是生成带有正确URL的超链接,该URL指向action方法。相反,只需直接编写HTML链接(或按钮)并将click事件附加到它。不需要我们任何Razor代码。

类似这样的东西:

<button type="button" class="linkbutton" onclick="myfunction(@item.id)">Click here</button>

另一个错误是将函数放在$(document).ready({块中。不必要是因为该块的想法只是在页面完成加载之前停止执行代码。使用仅从其他代码调用而不会立即执行的函数,您不必担心。并导致错误,因为这意味着您的函数仅在该块内具有作用域。无法在块外进行代码访问。

演示:

function myfunction(x)
{
  alert(x);
}
.linkbutton
{
  border: none;
  background: none;
  color: blue;
  text-decoration:underline;
}

.linkbutton:hover
{
  cursor:pointer;
}
<button type="button" class="linkbutton" onclick="myfunction(3)">Click here</button>

相关问题