使用HTML帮助程序标记创建链接

时间:2013-02-24 19:53:42

标签: c# jquery asp.net asp.net-mvc asp.net-mvc-3

我使用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  }) 
}

2 个答案:

答案 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似乎有点过分。