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

时间:2014-02-14 19:03:23

标签: c# asp.net-mvc asp.net-ajax

为什么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"
    }

当我点击提交按钮时,我的页面会重定向到新的空白页面。我怎么解决它?

2 个答案:

答案 0 :(得分:12)

您需要在页面中包含以下脚本:

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

答案 1 :(得分:3)

正如@Mat J和@ user3206982建议的那样:你可能需要unobtrusive.ajax.js文件。

您可以从nuget和。下载该软件包 将它添加到bundle config:

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/