gpt4 book ai didi

Ajax.BeginForm 用局部 View 替换整个页面

转载 作者:行者123 更新时间:2023-12-04 17:33:39 27 4
gpt4 key购买 nike

我在使用 Ajax.BeginForm() 时遇到问题在我简单的 ASP.NET MVC 应用程序中。我已经搜索了 SO 以寻找解决方案,但我发现的任何内容似乎都没有帮助。

我使用默认的 Visual Studio 2015 模板创建了一个新项目。我已经更改了 Index.cshtml文件到:

@{
ViewBag.Title = "Home Page";
}

<div class="jumbotron">
<h1>ASP.NET</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
<p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
</div>

<div class="row">
<div id="ajax-test"></div>

@using (Ajax.BeginForm("Test", new AjaxOptions()
{
UpdateTargetId = "ajax-test",
InsertionMode = InsertionMode.Replace
}))
{
<input type="submit" />
}
</div>

我向 HomeController 添加了一个新操作:
    public ActionResult Test()
{
return PartialView("Test");
}

新 View Home\Test.cshtml :
Hello world

而且,至关重要的是,我已将所需 JavaScript 文件的引用添加到 _Layout.cshtml。 (将它们移到页面顶部无济于事)。
    ...
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>

我已经验证了 jqueryval bundle 在 Debug模式下呈现为:
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

这些条目已经存在于 web.config 中文件:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

我希望当我按下提交时,div 将填充“Hello world”。相反,整个页面被替换为“Hello world”并且浏览器被重定向到 /Home/Test .开发人员工具中没有报告错误。

谜题中缺少什么元素?我知道以前在 StackOverflow 上也有人问过类似的问题,但通常的答案是包含这些 JavaScript 文件,我就是这样做的。以上是我对模板项目所做的所有更改,所以我看不出我可以破坏什么。

最佳答案

我已经与它斗争了几个小时,并在 StackOverflow 上发布后 5 分钟设法找到了解决方案。典型的。

我必须安装一个 NuGet 包 Microsoft.jQuery.Unobrusive.Ajax ,默认未安装,并添加对 jquery.unobtrusive-ajax.js 的引用到页面。我以为它已合并到jquery.validate.unobtrusive.js或者什么但没有。

关于Ajax.BeginForm 用局部 View 替换整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809801/

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