在模态中加载模型只能工作一次

我有这个烦人的问题,我一直试图修复过去几晚。 到目前为止没有运气。 我有一个视图与模态和局部视图,呈现在模态中。 在单击表格中的按钮时,我根据传递给控制器​​的参数向部分视图填充数据。 第一个很好,按钮调用控制器 – >控制器将模型传递给partialview – >模式打开,右侧数据在字段中。

当我单击另一条记录上的按钮时,将打开模态并显示旧数据。 未再次调用控制器,因此数据不会刷新。 问题是,如果我使用shift + f5刷新页面,它会再次工作一次。 所以它似乎是一个缓存问题。

到目前为止我尝试过 – 在我的控制器和方法中禁用缓存 – 调用javascript方法从我的模态中删除数据 – 使用其他类型的模态

代码索引视图

List of registrations
@Html.ActionLink("Create New", "Create", null, new { @class = "btn btn-primary btn-xs" })
@foreach (var item in Model) { }
@Html.DisplayNameFor(model => model.Date) @Html.DisplayNameFor(model => model.Car.Kenteken) @Html.DisplayNameFor(model => model.DepartureLocation) @Html.DisplayNameFor(model => model.ArrivalLocation) @Html.DisplayNameFor(model => model.Distance) @Html.DisplayNameFor(model => model.Allowance)
@Html.DisplayFor(modelItem => item.Date) @Html.DisplayFor(modelItem => item.Car.Kenteken) @Html.DisplayFor(modelItem => item.DepartureLocation) @Html.DisplayFor(modelItem => item.ArrivalLocation) @Html.DisplayFor(modelItem => item.Distance) @Html.DisplayFor(modelItem => item.Allowance) @Html.ActionLink("Edit", "Edit", new { id = item.CarId }, new { @class = "btn btn-white btn-sm" }) @Html.ActionLink("Delete", "Delete", new { id = item.CarId }, new { @class = "btn btn-white btn-sm" }) @Html.ActionLink("Copy", "CopyTripRegistrationModal", "TripRegistration", new { registrationId = item.RegistrationID }, new { @class = "img-btn-addnote modal-link btn btn-white btn-sm" })

 

使用Javascript

  $(function () { $('body').on('click', '.modal-link', function (e) { e.preventDefault(); $(this).attr('data-target', '#modal-container'); $(this).attr('data-toggle', 'modal'); }); $('body').on('click', '.modal-close-btn', function () { $('#modal-container').modal('hide'); }); debugger; $("#modal-container").on("hidden.bs.modal", function () { $(".modal-body").removeData(); }); }); 

局部视图

  

控制器动作

  [NoCache] public PartialViewResult CopyTripRegistrationModal(int registrationId) { var tripRegistration = _tripRegistrationService.getTripRegistrationById(registrationId); var tripRegistrationVM = AutoMapper.Mapper.Map(tripRegistration); return PartialView("_CopyTripRegistration", tripRegistrationVM); } 

我已将“[OutputCache(Duration = 0)]”添加到控制器的顶部。

我希望有人可以帮助我!

您可以显式地进行ajax调用并将其响应设置为模态体。

 $(function () { $('body').on('click', '.modal-link', function (e) { e.preventDefault(); $("#modal-container").remove(); $.get($(this).attr("href"), function (data) { $('').modal(); }); }); }); 

这将适用于您所有独特的url。