Asp.Net MVC 部分视图表单帖子替换整个页面

问题描述 投票:0回答:3

我正在使用 Asp.Net MVC,但我遇到了表单问题。 我在视图内有一个部分视图,该视图内有一个表单。

看起来像这样:

Main.cshtml 内部

<div id="Artikel" hidden>
    @Html.Action("_Artikel", Model);
</div>

这将呈现部分视图。

部分视图的控制器

public ActionResult _Artikel()
{
    return PartialView()
}

所有这些都工作正常,但是当我发射我的

Ajax.BeginForm(...)
时,它取代了整个视图,而不仅仅是 Arikel Div。

部分视图内

@using (Ajax.BeginForm("_Artikel", "Home", new AjaxOptions { HttpMethod = "post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "Artikel" }))
{
    ...
}

我读了很多文章,说 jQuery.Unobtrusive.Ajax 在最新版本的 jQuery 中不支持。

但我实在不明白为什么它总是占据整个页面。 有人能帮我吗?如果您需要更多代码,请询问。

jquery ajax asp.net-mvc
3个回答
2
投票

确保启用 Unobtrusive JavaScript

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

在您的 web.config 文件的 appSettings 中。


0
投票

问题实际上是您没有将 jquery.unobtrusive-ajax.min.js 的链接放在主布局中。检查 ~/Scripts/jquery.unobtrusive-ajax.min.js 是否已加载。如果未加载,浏览器将部分视图打开为完整页面。我遇到了这样的问题,然后我按以下方式放置了链接。它开始工作了。


0
投票

在我非常旧的网络应用程序中,问题是同一页面上使用了不同版本的 jquery。 当然,无论如何都要避免这种情况。只是在这里提到它,以便其他人可以将此错误(Ajax.BeginForm 替换整个页面)链接到混乱的 JavaScript 设置。

© www.soinside.com 2019 - 2024. All rights reserved.