Asp.net mvc 4 ajax和mvc回调
我有一个单独的页面设置了多个部分。我想能够验证和更新每个部分分别。验证工作正常,但当我输入正确的值并按save时,页面将转到部分视图,而不是停留在单个页面上。我做错了什么 这是我的主页:Asp.net mvc 4 ajax和mvc回调,asp.net-mvc-4,ajax.beginform,Asp.net Mvc 4,Ajax.beginform,我有一个单独的页面设置了多个部分。我想能够验证和更新每个部分分别。验证工作正常,但当我输入正确的值并按save时,页面将转到部分视图,而不是停留在单个页面上。我做错了什么 这是我的主页: @for (var i = 0; i < 10; i++) { var idTest = "Test_" + i; <div id="@idTest"> @Html.Action("Detail", new { id = i }) </div> } 以下是行动:
@for (var i = 0; i < 10; i++)
{
var idTest = "Test_" + i;
<div id="@idTest">
@Html.Action("Detail", new { id = i })
</div>
}
以下是行动:
[HttpGet]
public ActionResult Detail(int id)
{
Models.Test model = new Models.Test();
model.Id = id;
return View(model);
}
[HttpPost]
public ActionResult Detail(Models.Test model)
{
if(ModelState.IsValid)
{
return PartialView(model);
}
return PartialView(model);
}
将这些行添加到视图中,并使用@Html.Partial,如下所示
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
所以你的主要观点是
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
@for (var i = 0; i < 10; i++)
{
var idTest = "Test_" + i;
<div id="@idTest">
@Html.Partial("Detail", new Test { Id = i })}
</div>
}
@对于(变量i=0;i<10;i++)
{
var idTest=“测试”+i;
@Html.Partial(“Detail”,新测试{Id=i})}
}
脚本将用于不引人注目的ajax,这样您的ajax按钮可以正常工作,Html.Partial因此,当您第一次在foreach中加载页面时,只会呈现部分视图(而不是完整视图)您的UpdateTargetId似乎是错误的,它应该是呈现部分视图的div。请尝试为设置ID并将其设置为目标。另外需要注意的是,请在提交后检查@idTest的值。如果该值是错误的,那么它可能不仅仅是刷新部分视图。确保您包含了不引人注目的ajax脚本文件,请参见!我从nuget那里得到了一个不引人注目的-ajax.js,这很有效。谢谢
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
@for (var i = 0; i < 10; i++)
{
var idTest = "Test_" + i;
<div id="@idTest">
@Html.Partial("Detail", new Test { Id = i })}
</div>
}