2

我在 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)
4

1 回答 1

0

使用 Nuget Manager 获取最新版本的 jQuery.unobtrusive-ajax.js:

Install-Package Microsoft.jQuery.Unobtrusive.Ajax
于 2015-06-28T09:11:49.703 回答