为ajax.actionlink调用javascript函数

时间:2010-10-01 08:04:44

标签: asp.net-mvc ajax asp.net-mvc-2 actionlink

我有以下ajax.actionlink。我想将click事件添加到此actionlink。我怎么能这样做

<%= Ajax.ActionLink("text", "textaction", new { param = 1}, new AjaxOptions
                            {                                   
                                OnSuccess = "updatePlaceholder",                                
                                UpdateTargetId = "result"
                            })%>

2 个答案:

答案 0 :(得分:5)

点击事件处理程序已添加到此链接,因为您使用的是Ajax.ActionLink帮助程序方法。此单击事件处理程序将取消默认操作并将AJAX请求发送到此链接指向的地址。您可以尝试设置OnBegin选项。

如果您在项目中使用jquery,则可以使用普通链接(Ajax.ActionLink帮助程序没有将所有javascript添加到您的标记中):

<%= Html.ActionLink(
    "text", 
    "textaction",
    new { param = 1 },
    new { id = "mylink" })
%>

然后在单独的javascript文件中附加click事件处理程序:

$(function() {
    $('#mylink').click(function() {
        // here you could execute some custom code
        // before sending the AJAX request
        $('#result').load(this.href, function() {
            // success function
        });
        return false;
    });
});

这种方式可以实现标记和javascript文件之间的明确分离。由于javascript将位于将由客户端浏览器缓存的单独文件中,因此您将减少带宽。

答案 1 :(得分:0)

您需要更改代码:

$('#mylink')。click(function(e){         e.preventDefault();         ....做你想做的事