为什么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/