Jquery-Unobtrusive-Ajax 未找到数据-ajax-更新

标签 jquery asp.net-mvc unobtrusive-ajax

我的 MVC Core 项目中有以下链接:

<a asp-action="ArtictleDetailsById" asp-controller="Home" asp-route-area="Global" asp-route-id="@Model.Id" data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="ArticleDetails" class="btn btn-default">View Details</a>

它正在按预期发送和检索数据,但它没有更新目标元素。更具体地说,当尝试调试时,将评估并跳过以下内容(来自 jquery.unobtrusive-ajax.js):

 $(element.getAttribute("data-ajax-update")).each(function (i, update) {
        var top;

        switch (mode) {
        case "BEFORE":
            top = update.firstChild;
            $("<div />").html(data).contents().each(function () {
                update.insertBefore(this, top);
            });
            break;
        case "AFTER":
            $("<div />").html(data).contents().each(function () {
                update.appendChild(this);
            });
            break;
        case "REPLACE-WITH":
            $(update).replaceWith(data);
            break;
        default:
            $(update).html(data);
            break;
        }
    });

但是下面的代码可以工作(替换 .each() 循环):

update = (element.getAttribute("data-ajax-update"));
$('#'+update).html(data);

我想知道这是否存在已知问题、正确的修复方法,或者我做错了什么。我看到过去关于 .live() 的使用存在一些问题,但这里的情况并非如此。

最佳答案

如果ArticleDetails是目标dom元素的ID,你应该在它前面添加一个“#”字符,如下所示:

<a asp-action="ArtictleDetailsById" asp-controller="Home" asp-route-area="Global" asp-route-id="@Model.Id" data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#ArticleDetails" class="btn btn-default">View Details</a>

关于Jquery-Unobtrusive-Ajax 未找到数据-ajax-更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310338/

相关文章:

javascript - 使用 Javascript/Jquery 禁用桌面 Web 浏览器中的页面缩放

jquery - ASP.NET MVC 4 : cannot modify jQuery Unobtrusive Ajax

asp.net-core - data-ajax-update 和 data-ajax-mode ="replace"在 dotnet core jquery unobtrusive ajax 中不起作用

jquery - 水平对齐 div 并 overflow hidden

jquery - 如何通过 jquery 模拟 anchor 击?

javascript - 如何使用 jQuery 修改 POST headers onclick?

css - LabeFor 不生成显示标签类属性

sql - Entity Framework Lambda 表达式中的交叉连接

c# - 在 Entity Framework 中存储自定义对象列表