我在 MVC 应用程序中进行 ajax 调用时遇到问题。我尝试了两种不同的方法来让 ajax actionlink 加载部分,然后部分提交表单作为 ajax 调用,但我遇到了麻烦。
第一次尝试
// 将加载部分页面并成功提交表单,但每次单击操作链接时都会加载另一个 ajax 脚本,因此当单击操作链接时,它会在第一次单击时调用控制器一次,在第二次单击时调用两次, ETC...
索引.cshtml
@Ajax.ActionLink("Car 1, "EditCars", new { role = @Model.Car1}, new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "permissions",
})
@Ajax.ActionLink(Car 2, "EditCars", new { role = @Model.Car2}, new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "permissions",
})
<div id="permissions"></div>
// need to include this script to get the ajax action links to work
@Html.Script("~/Scripts/Main/jQuery.unobtrusive-ajax.js")
编辑汽车.cshtml
@using (Ajax.BeginForm("EditCars", "CarManagement", new AjaxOptions()))
{
@Html.EditorFor(model => model.CarName)
<input type="submit" />
}
// need to include this script to get the ajax submit form to work
@Html.Script("~/Scripts/Main/jQuery.unobtrusive-ajax.js")
第二次尝试
// 动作链接有效,但 ajax 提交表单无效。控制器返回新页面
索引.cshtml
@Ajax.ActionLink("Car 1, "EditCars", new { role = @Model.Car1}, new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "permissions",
})
@Ajax.ActionLink(Car 2, "EditCars", new { role = @Model.Car2}, new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "permissions",
})
@using (Ajax.BeginForm("EditCars", "CarManagement", new AjaxOptions()))
{
<div id="permissions"></div>
<input type="submit" />
}
// need to include this script to get ajax calls to work
@Html.Script("~/Scripts/Main/jQuery.unobtrusive-ajax.js")
编辑汽车.cshtml
@Html.EditorFor(model => model.CarName)