我正在将Bootstrap 4 Modal窗口与显示网格的局部视图一起使用。一切正常,直到我尝试进行排序/过滤/分页。模态显示正确的数据集,但是当我尝试过滤/排序/分页时,它调用填充模态页面的控制器/方法。
当我将鼠标悬停在该列上进行排序时,它在底部显示url,并且该URL包含引发弹出窗口的页面的控制器/动作,而不是用于填充弹出窗口的控制器/动作。网址末尾的参数对于我要排序的列是正确的-意味着它具有用于partialView和要排序的列的操作方法的正确参数,只是它具有页面和页面的contoller /方法不是模态。
这是_Layout中的partialView占位符:
@Html.Partial("_AuditModal")
这是_Layout中的函数,用于调用局部视图的控制器并显示模式:
function ShowAudit(tblName, tblId) {
var url = '@Html.Raw(@Url.Action("AuditInfo", "Home", new { tableName = "__rId__", tableId = "__ds__"}))';
url = url.replace('__rId__', tblName).replace('__ds__', tblId);
$.get(url, function (data) { $('.modal-body').html(data); });
$('#AuditInfoModal').modal('show');
$('#AuditInfoModal').on('hidden.bs.modal', function(e) { $('.modal-body').html("") });
};
这是模式页面:
@using (Html.BeginForm("AuditInfo", "Home", FormMethod.Post, new {area = "Admin", @class = "container", role = "form", @id = "form1", oncomplete = ""}))
{
<div class="modal hide fade " id="AuditInfoModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Audit Info</h4>
<button type="button" class="close float-left" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
}
这是模态主体的部分页面:
@using (Html.BeginForm("AuditInfo", "Home", FormMethod.Post, new {area = "Admin", @class = "container", role = "form", @id = "form1", oncomplete = ""}))
{
@Html.Grid(Model).Columns(columns =>
{
columns.Add(c => c.USER_ID).Titled("User").Filterable(true);
columns.Add(c => c.COMMENT).Titled("Comment").Filterable(true);
columns.Add(c => c.CREATED).Titled("Audit Date").Filterable(true);
}).WithPaging(10).Sortable(true)
}
然后在我的每个页面上,我都有一个按钮,用户可以按此按钮来查看他们所查看的记录:
columns.Add().Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs( data => @"<button class='btn-secondary' type='btn' onclick='ShowAudit('EQUIPMENT_TYPE'," + data.ID+")'> Audit </button>");
这是HomeController中的操作:
public ActionResult AuditInfo(string tableName, int tableId)
{
var data = _auditSvc.GetAllByTableId(tableName, tableId).OrderByDescending(o=> o.CREATED).ToList();
return PartialView("_AuditInfo", data);
}
不确定问题是否出在从中调用弹出窗口的页面还包含网格,并且它是否使用弹出窗口中的控制器/方法进行排序/过滤/分页,而不是部分页面的控制器/方法?