gpt4 book ai didi

jquery - 为什么 Ajax.ActionLink 更新整个页面而不是只更新 UpdateTarget

转载 作者:行者123 更新时间:2023-12-03 22:21:19 25 4
gpt4 key购买 nike

这应该只替换 UpdateTarget,但事实并非如此,它替换了整个页面,我不明白为什么。返回正确的部分 View ,但不是替换目标 id,而是替换整个页面。

<div id="magHeader">
<p>this is a test.</p>
@Ajax.ActionLink("Edit", "GetEditor", "Home", new AjaxOptions(){ UpdateTargetId = "magHeader", InsertionMode = InsertionMode.Replace})
</div>

在运行时,链接如下所示:

<a href="/Home/GetEditor" data-ajax-update="#magHeader" data-ajax-mode="replace" data-ajax="true">Edit</a>

我是不是做错了什么?过去曾成功完成此操作,没有出现任何问题。

编辑此问题的根本原因是,在 VS 2012 中,您只需添加对 JQueryVal 包的引用即可完成此操作。但是,在 2013 年,BundleConfig.cs 发生了更改,因此 JQueryVal 包不再包含 JQuery.Unobtrusive。因此,简单的解决方法是将其添加回 bundle 中:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));

然后一切都会按预期工作。

最佳答案

检查您是否正在将 @Scripts.Render("~/bundles/jqueryval") 加载到页面中的某个位置。这可能是因为不显眼的 javascript 文件没有被加载。检查这个video

编辑:
请检查您的packages.config 文件中是否安装了软件包。

<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.1.1" targetFramework="net451" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.0.0" targetFramework="net451" />

关于jquery - 为什么 Ajax.ActionLink 更新整个页面而不是只更新 UpdateTarget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22616318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com