我有一个包含联系人的网格。当人们转到/ contacts / URL时,它会自动显示联系人。在一个单独的框中,人们可以按不同的标准过滤这些框。每当应用不同的标准时,我只想刷新网格,而不是整个页面。
为了实现这一点,我是否会将Contacts Grid自身置于局部视图中,以后会以某种方式通过AJAX返回局部视图?
请给我一个正确方向的提示。谢谢:))
答案 0 :(得分:2)
最直接的方法可能是使用jQuery AJAX API来请求方法。然后使用控制器中的Request.IsAjaxRequest()
属性查看请求是否是使用AJAX进行的 - 如果是,则只从Controller操作返回PartialView
。
一些代码示例:
在您看来,您可以使用以下标记:
<div id="gridContainer">
<% Html.RenderPartial("ContactsGrid", ViewData.Model); %>
</div>
(假设您的联系人包含在Model
对象中,并且视图是强类型的......)
然后,当您想要更新网格时,调用以下javascript代码:
$('#gridContainer').load('/contacts/', { filterParameter: andItsValue });
如果您的路线支持,您也可以在网址中附加过滤器参数。
在您的控制器操作中,您在返回之前执行以下检查:
if(Request.IsAjaxRequest()) {
return PartialView("ContactsGrid", contacts);
}
return View(contacts);
答案 1 :(得分:2)
Something I put together a while ago...
我认为这会让你开始朝着正确的方向前进。这是一个使用AJAX和UserControl的简单搜索人员。
答案 2 :(得分:1)
我通常不喜欢发布链接,我喜欢编写快速示例代码,但我认为这篇CodeProject文章的工作恰到好处:http://www.codeproject.com/KB/aspnet/JQueryPartial.aspx。