【问题标题】:MVC Multiple Ajax CallsMVC 多个 Ajax 调用
【发布时间】:2015-02-20 15:57:17
【问题描述】:

我在 MVC 应用程序中进行 ajax 调用时遇到问题。我尝试了两种不同的方法来让 ajax actionlink 加载部分内容,然后部分提交表单作为 ajax 调用,但我遇到了麻烦。

第一次尝试

// 将加载部分页面并成功提交表单,但每次点击一个动作链接时,它都会加载另一个 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",
               })

<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")

EditCars.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")

EditCars.cshtml

@Html.EditorFor(model => model.CarName)

【问题讨论】:

    标签: ajax asp.net-mvc unobtrusive-ajax


    【解决方案1】:

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

    Install-Package Microsoft.jQuery.Unobtrusive.Ajax
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多