Ajax分页与部分在MVC 4中消失

本文关键字:MVC 消失 分页 Ajax | 更新日期: 2023-09-27 17:51:11

我使用Ajax来填充部分。

当我点击主页上的链接时,部分正确填充。如果我单击另一个链接(它们的列表),它会重新填充。

在我的偏部分中,我有一个属性表。只要单击页面按钮或标题(按顺序排序),表格就会消失。并且该列表不再用于重新填充。

有人知道为什么吗?

Properties.cshtml partial.

@model IEnumerable<ns.Models.Property>
@{
    WebGrid table = new WebGrid(ajaxUpdateContainerId: "properties-partial");
    table.Bind(Model);
}
@table.GetHtml()

我的main.cshtml页面。

<div id="properties-partial">
</div>
    @Ajax.ActionLink(
        item.Title,
            "Properties",
            "Home",
            new { propertyId = item.propertyId},
            new AjaxOptions { UpdateTargetId = "properties-partial" })

我已经检查了在firefox中正在进行的调用,并直接键入url,看起来很好(带来了正确的数据页)。这就像它在分页后没有附加到部分,从那时起就中断了它。

Ajax分页与部分在MVC 4中消失

解决方案是将表包装在局部的div中。并指定为ajaxUpdateContainerID

@model IEnumerable<ns.Models.Property>
@{
    WebGrid table = new WebGrid(Model, ajaxUpdateContainerId: "tablediv");
}
<div id="tablediv">
    @table.GetHtml()
</div>

我也遇到了同样的偏导数问题,并通过下面的操作来克服:

@model IEnumerable<ns.Models.Property>
@{
    if (Model != null && Model.Count > 0)
    {
        var testWebGrid = new WebGrid(Model, canPage: true, rowsPerPage: 10, ajaxUpdateContainerId: "testTableDiv");
        <div id="testTableDiv">
           <div id="testGridDiv">
               @testWebGrid.GetHtml(mode: WebGridPagerModes.All, footerStyle: "pager")
            </div>
            @testWebGrid.Pager()
         </div>
    }
 }

jQuery(使用它的类删除分页栏):

$(document).ready(function () {
    $(".pager").remove();
});

希望这有帮助!!