部分视图按预期工作,提交被调用一次。 非部分View会两次调用提交。
我可以解决这个问题的唯一方法是从_Layout.cshtml文件中删除... ajax.min.js文件并将其放在局部视图中。执行此操作后,“视图”和“部分”视图仅提交一次。
其中一个回复here建议不要使用... ajax.min.js文件,因为Ajax.Beginform()在没有它的情况下也能正常工作 - 但这似乎与其他帖子没有关系。
正确使用的任何想法?
谢谢!
**更新** 这是不起作用的配置:
我的_Layout.cshtml文件中的脚本:
<script src="@Url.Content("~/Scripts/kendo/2014.1.528/jquery.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2014.1.528/kendo.all.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2014.1.528/kendo.aspnetmvc.min.js")"></script>
<script src="@Url.Content("~/scripts/kendo.modernizr.custom.js")"></script>
<script src="@Url.Content("~/Scripts/kendo.web.ext.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script src="@Url.Content("~/Scripts/bootstrap.js")"></script>
这是我视图中的Ajax.BeginForm():
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result", OnSuccess = "OnSuccess" }))
{
...
}
这是我局部视图中的Ajax.BeginForm():
@using (Ajax.BeginForm("SaveEfficiencyMetrics", "Plan",
new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result", OnSuccess = "OnSuccess", InsertionMode = InsertionMode.Replace },
new { target = "_self", id = "_SpaceEfficiencyMetrics" }))
{
...
}
再次,部分视图工作,提交被调用一次。但是,主视图提交被调用两次。
我已经确认我没有两次引用该脚本。