【发布时间】:2019-05-17 21:48:46
【问题描述】:
我有以下代码:
查看:
@model IEnumerable<FormBuilder.Model.Formular>
<div id="divAktiveFormulare">
@{ Html.RenderPartial("Formular/TableAllFormulare", Model.Where(model => model.Status == FormularStatus.Aktiv).ToList()); }
</div>
<div id="divArchivierteFormulare">
@{ Html.RenderPartial("Formular/TableAllFormulare", Model.Where(model => model.Status == FormularStatus.Archiviert).ToList()); }
</div>
function btnArchivieren(e) {
$.ajax({
url: 'Url.Action("Archive", "Formular")',
data: { id: e.target.name },
success: function (data) {
$('#divArchivierteFormulare').html(data);
}
});
}
控制器:
public ActionResult Index()
{
List<Formular> aktiveformulare = _formularManager.GetAllFormulare();
return View(aktiveformulare);
}
public ActionResult Archive(int id)
{
Formular formular = _formularManager.GetFormularByID(id);
if (formular != null)
{
formular.Status = FormularStatus.Archiviert;
_formularManager.UpdateFormular(formular);
}
return PartialView("Formular/TableAllFormulare", _formularManager.GetAllFormulare());
}
我有两个 div(divAktiveFormulare 和 divArchivierteFormulare)。在它们中的每一个中都呈现了部分视图。部分视图显示了一个模型项表(模型是IEnumerable),每个视图在枚举后都有一个过滤模型(例如Html.RenderPartial("Formular/TableAllFormulare", model => model.Status == FormularStatus.Archiviert)。
第一次加载索引页面时,一切正常。我可以在RenderPartial()-lines 处设置一个断点,它会停在那里。两个局部视图都在过滤模型后正确显示其表格。
在我的页面上,我有一个按钮,按下它会启动 Javascript btnArchivieren,它会向控制器发送一个 ajax。该操作将返回带有更新模型的Partial View()。
但现在我在RenderPartial() 的刹车点不会再次被触发。好吧,div 已更新,是的,但没有过滤部分视图的模型 (Model.Where(model => model.Status == FormularStatus.Archiviert)。两个部分视图都显示了没有通过枚举过滤的表格。就像我说的那样,我的刹车点甚至没有被触发。
我做错了什么?
为什么RenderPartial()-lines 在从具有更新模型的控制器返回部分视图后不执行?
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-ajax partial-views