繁体   English   中英

Modal的部分视图内容不会刷新

[英]Modal's partial view content does not refresh

我有一个bootstrap模式,当打开时,命中服务器以使用将显示在屏幕上的数据更新模型。 它在第一次打开模态时效果很好,但在此之后,它始终显示与第一次打开时相同的数据。

在视图中:

<div id="ChangeOrderModal" class="modal hide fade" style="width:1000px">
<div class="modal-body">
    <div id="ChangeOrderTable"></div>
</div>
<div class="modal-footer">
    <a href="#" data-dismiss="modal" class="btn">Close</a>
</div>

视图中的脚本命中服务器并更新数据:

var url = '@Url.Action("SetChangeOrderDate")';
$.post(url, { coDate: date, projId: @Model.Project.id_project }, function (data) {
    $('#ChangeOrderTable').replaceWith(data);
});
$('#ChangeOrderModal').modal('show');

每次击中动作都很好:

[HttpPost]
public ActionResult SetChangeOrderDate(string coDate, int projId)
{
    ....
    return PartialView("_ChangeOrderTable", projectVM);
}

然后,在局部视图中:

@foreach (var record in Model.ChangeOrder.Change_Order_Dash_List
{
     ... create table based on the list...
}

如果我在局部视图中在@foreach上放置一个断点,并获得项目的计数,那么它总是正确的。 示例:第一次打开模态时,它的计数为3.然后,三行将呈现在屏幕上。 我关闭模态,通过单击另一个图标打开它,这次计数为7.我甚至可以看到它循环遍历HTML以呈现每行七次。

但是,屏幕上出现与上次相同的三行。

我究竟做错了什么?

使用.replaceWith()意味着在第一个事件中,使用部分生成的html替换<div id="ChangeOrderTable"></div>元素,并且<div>元素不再存在。

在第二个事件中,你返回正确的html,但$('#ChangeOrderTable').replaceWith(data); 不再执行因为没有id="ChangeOrderTable"的元素(所以你只看到第一个事件中呈现的元素)。

将更新代码更改为DOM以使用.html()替换元素的内容,而不是元素本身。

$.post(url, { coDate: date, projId: @Model.Project.id_project }, function (data) {
    $('#ChangeOrderTable').html(data);
});

有关更多信息,请参阅jQuery的replaceWith()和html()之间的区别什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM