我需要使用Ajax.BeginForm使用PartialView刷新div。 我在MVC4中已经完成了十几次这样做,它完美无缺。在MVC5中,它并不起作用:(
以下是我采取的步骤:
此_Test.cshtml视图的代码:
<p>From now on I'm gonna change my life: @DateTime.Now.ToString()</p>
编辑Views / Home / Index.cshtml视图:
@{
ViewBag.Title = "Home Page";
}
@using (Ajax.BeginForm("ChangeLife", "Home", null, new AjaxOptions() { UpdateTargetId = "test", HttpMethod = "Post" }, null))
{
<input type="submit" value="Start" />
}
<div id="test">
@Html.Partial("_Test")
</div>
将它放在你的HomeController中:
public ActionResult ChangeLife()
{
return this.PartialView("_Test");
}
如果单击Manage NuGet packages,默认情况下会安装jQuery和Microsoft jQuery Unobtrusive Validation。
答案 0 :(得分:6)
我必须安装Microsoft jQuery Unobtrusive Ajax并为jqueryval呈现javascript包(现有但未呈现),并为unobtrusive.ajax脚本文件添加了一个新包。
BundleConfig类中的新包:
bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include(
"~/Scripts/jquery.unobtrusive*"));
为_Layout.cshtml中的两个包添加了渲染方法(在jquery渲染下面):
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryajax")