我需要这方面的帮助..
我有一个客户列表的可视数据,我给它当Index操作方法被调用。
/ *指数动作是打开视图的方法。 * /
一旦该指数方法被调用,变量和feeded视图显示。
然后,我有一个对话框,在这里是呈现partialView,至极有一个表与客户的名单。
<div id="popupClients" class="popUp" style= "display:none">
<% Html.RenderPartial("ClientsPartialView", ViewData["clients"]); %>
/ * popupClients是对话框。 * /
/ * ClientsPartialView是与客户展示的标识和名称的表partialView。 * /
该cuestion是我怎么能在显示之前刷新可视数据的数据?
我问这个是因为,如果有人插入一个新的客户,必须显示在partialView
Thnxs!
您可以使用Ajax的 ,只是之前显示该对话框刷新页面表示popupClients的部分。
如果你的局部视图渲染,也就是说,一个div
包含所有弹出的内容,你可以使用Ajax刷新div
,沿着线的东西:
function getCustomerList(searchCriteria) {
$.ajax({
url: 'Home/GetClientList',
type: 'POST',
async: false,
data: { searchString: searchCriteria },
success: function (result) {
$("#popupClients").html(result);
$( /*... do whatever you do now to show your dialog....*/ ;
}
});
};
UPDATE
基于您的评论......
每当你的服务器端代码运行(和你刚才给我的服务器端代码,您的评论),你是在一个位置,以获得新的数据。 当你的局部视图回调到控制器,控制器应更新从数据库模型如果是这样的业务需求。
沿着线的东西:
[OutputCache(Duration = 0)]
public ActionResult _ClientList()
{
List<Clients> clientList = GetCurrentClientListsFromDB();
return PartialView(clientList);
}
这将导致一个检查到数据库的每个控制器被调用时。 如果它是可以接受的错过了最近的更新,你可以改变的值的OutputCache通知MVC引擎缓存结果的几秒钟内给定数。 您还可以配置的OutputCache刷新基于SQL的依赖 ,这样,当有一个变化的基础表,而不是仅仅清爽基于经过时间则自动失效。 这是更复杂的设置,但会得到更准确的结果。