c# - 从 html.actionlink 在外部页面上调用 jQuery 函数
问题描述
我有一个这样的操作链接:
@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")
});
解决方案
如果你只是想让它运行一个 jQuery 函数而不是去一个控制器,那么使用 actionLink 帮助器是没有意义的——它的全部目的是生成一个带有正确 URL 到 action 方法的超链接。相反,只需直接编写一个 HTML 链接(或按钮)并将点击事件附加到它。我们不需要任何 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>
推荐阅读
- c++ - 如何返回“空值”?
- arrays - 如何更改 TS 对象数组格式?
- c# - 在 Linq where 子句中动态反序列化 Json
- maven - 在多模块项目中只执行一次插件目标
- html - 如何使用 getBoundingClientRect() 在 Angular 的 html 页面中根据 div 部分的位置执行一些操作
- reactjs - React JS - 如何防止重复提交和触发搜索调用表单
- python - 减少ParallelMapDataset的维度
- azure - Kusto 声明虚拟整数并保存其更新状态
- ssh - SSH 远程隧道端口
- reactjs - 使用 react-rater,如何将评分值发送到数据库,并计算平均评分