为 ajax.action 调用 javascript 函数link

发布于 2024-09-25 20:05:00 字数 415 浏览 2 评论 0原文

我有以下 ajax.actionlink。我想将点击事件添加到此操作链接。我怎样才能做到这一点

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

I have the following ajax.actionlink. i want to add click event to this actionlink. How can i do that

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半仙 2024-10-02 20:05:00

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

如果您在项目中使用 jquery,则可以有一个正常链接(无需通过 Ajax.ActionLink 帮助器将所有 javascript 添加到您的标记中):

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

然后在一个单独的链接中javascript 文件附加点击事件处理程序:

$(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 将位于单独的文件中,这些文件将由客户端浏览器缓存,因此您将减少带宽。

The click event handler is already added to this link because you are using the Ajax.ActionLink helper method. This click event handler will cancel the default action and send an AJAX request to the address this link is pointing to. You may try setting the OnBegin option.

And if you use jquery in your project you could have a normal link (without all the javascript added to your markup by the Ajax.ActionLink helper):

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

and then in a separate javascript file attach the click event handler:

$(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;
    });
});

This way will achieve a clear separation between your markup and javascript files. As javascript will be in separate files which will be cached by client browser you will reduce bandwidth.

煮酒 2024-10-02 20:05:00

您需要更改代码:

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

You need to change the code:

$('#mylink').click(function(e) {
e.preventDefault();
....do what ever you want

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文