为什么Ajax.BeginForm在提交后重定向到新的空白页面



为什么Ajax.BeginForm在提交后将我的页面重定向到新的空白页面?

我的控制器代码是:

    [HttpPost]
    public void ProductCommentAdd(int productId, string text)
    {
           //Do something
    }

视图中的 Mvc ajax 调用是:

    @using (Ajax.BeginForm("ProductCommentAdd", "Shop", new AjaxOptions() { HttpMethod = "POST"}))
    {
                <input type="hidden" value="@Model.ProductId" name="ProductId"/>
                <textarea name="text"></textarea>
                <input type="submit" value="Submit"
    }

当我单击提交按钮时,我的页面重定向到新的空白页面。我该如何解决?

您需要

在页面中包含以下脚本:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" 
                       type="text/javascript"></script>

正如 @Mat J 和 @user3206982 所建议的那样:您可能需要不显眼的 .ajax.js 文件。

您可以从 nuget 下载包,并且将其添加到捆绑包配置中:

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

在 HTML 中:

@Scripts.Render("~/bundles/jqueryunobtrusive")

来源: https://dotnetthoughts.net/mvc5-ajax-form-is-not-updating-div-but-replacing-the-whole-page-instead/

最新更新