我有一个包含联系人的网格。当人们访问/contacts/URL 时,它会自动显示联系人。在一个单独的框中,人们可以根据不同的标准过滤那些。每当应用不同的条件时,我只想刷新网格,而不是整个页面。
为了实现这一点,我是否可以将联系人网格本身放在局部 View 中,然后以某种方式通过 AJAX 返回局部 View ?
请给我一个正确方向的提示。谢谢:)
请您参考如下方法:
最直接的方法可能是使用 jQuery AJAX API请求方法。然后,您可以在 Controller 中使用 Request.IsAjaxRequest() 属性来查看请求是否是使用 AJAX 发出的 - 如果是,则您仅从 Controller 操作返回 PartialView。
一些代码示例:
在您看来,您可以使用以下标记:
<div id="gridContainer">
<% Html.RenderPartial("ContactsGrid", ViewData.Model); %>
</div>
(假设您的联系人包含在 Model 对象中,并且 View 是强类型的...)
当您想要更新网格时,您可以调用以下 javascript 代码:
$('#gridContainer').load('/contacts/', { filterParameter: andItsValue });
如果您的路由支持,您还可以在 URL 中附加过滤器参数。
在您的 Controller 操作中,您在返回之前执行以下检查:
if(Request.IsAjaxRequest()) {
return PartialView("ContactsGrid", contacts);
}
return View(contacts);
