我使用HTML帮助程序标记创建了一个链接。根据下面给出的代码,当用户点击链接时,页面将导航到另一个名为Hello
的视图。
@Html.ActionLink("Hello", "Hello", new { id=item.pk })
但是,我想要做的是调用JS方法并在同一页面中打开一个div。我怎样才能做到这一点 ? 示例:当用户点击修改
时显示和隐藏一些控件@foreach (var item in Model.exampleAll)
{
@Html.ActionLink("Hello", "Hello", new { id=item.pk })
}
答案 0 :(得分:2)
将ActionLink更改为:
@Html.ActionLink("Hello", "Hello","YourController", new { onclick = "yourFunction();"})
或者甚至更好地添加一个js函数来拦截你的链接点击,这里是JQuery:
@Html.ActionLink("Hello", "Hello","YourController", new { id= "someLink"})
$('#someLink').click(function() { alert('hello'); });
编辑:如果您需要将函数应用于多个元素,请使用css类作为选择器,更改actionlink:
@Html.ActionLink("Hello", "Hello","YourController", new { id= item.pk, @class = "classname"})
$('.classname').click(function() { alert(this.id); });
答案 1 :(得分:1)
听起来很普通,我会使用html锚点
<a href='' id='@(item.pk)' class='itemsList'> click me </a>
然后是一个JQuery事件处理程序
$('.itemsList').click(function(){
var currentId = this.id; // get id of object that was clicked
// populate or make visible your div here
});
它不像'MVC WAY',但你不需要更多。
重要提示:如果您不想使用锚点/链接进行任何导航,则使用Html.ActionLink似乎有点过分。