Model view controller 刷新renderPartial中的viewData对象
我需要你的帮助 我有一个带有客户端列表的viewdata,在调用Index action方法时提供它 /*索引操作是打开视图的方法*/ 一旦调用了索引方法,变量就被输入并显示视图 然后,我有一个对话框,其中呈现一个partialView,其中有一个包含客户端列表的表Model view controller 刷新renderPartial中的viewData对象,model-view-controller,viewdata,Model View Controller,Viewdata,我需要你的帮助 我有一个带有客户端列表的viewdata,在调用Index action方法时提供它 /*索引操作是打开视图的方法*/ 一旦调用了索引方法,变量就被输入并显示视图 然后,我有一个对话框,其中呈现一个partialView,其中有一个包含客户端列表的表 <div id="popupClients" class="popUp" style= "display:none"> <% Html.RenderPartial("ClientsPartialView",
<div id="popupClients" class="popUp" style= "display:none">
<% Html.RenderPartial("ClientsPartialView", ViewData["clients"]); %>
/*弹出客户端是对话框*/
/*ClientsPartialView是一个partialView,它有一个表,显示客户端的id和名称*/
提示是如何在显示之前刷新viewdata的数据
我这样问是因为,如果有人插入一个新客户机,必须在partialView中显示
Thnxs 在显示对话框之前,您可以使用刷新页面中表示PopupClient的部分
如果您的局部视图呈现(例如)包含弹出窗口所有内容的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....*/ ;
}
});
};
[OutputCache(Duration = 0)]
public ActionResult _ClientList()
{
List<Clients> clientList = GetCurrentClientListsFromDB();
return PartialView(clientList);
}
更新
根据你的评论
每次服务器端代码运行时(您刚才在注释中向我展示了服务器端代码),您都可以获得新的数据。当局部视图调用控制器时,如果这是业务需求,那么控制器应该从数据库更新模型
大致如下:
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....*/ ;
}
});
};
[OutputCache(Duration = 0)]
public ActionResult _ClientList()
{
List<Clients> clientList = GetCurrentClientListsFromDB();
return PartialView(clientList);
}
[OutputCache(持续时间=0)]
公共行动结果_ClientList()
{
List clientList=GetCurrentClientListsFromDB();
返回PartialView(客户端列表);
}
这将导致在每次调用控制器时检查数据库。如果可以接受错过最近的更新,则可以更改的值以通知MVC引擎将结果缓存给定的秒数。您还可以将OutputCache配置为基于刷新,以便在基础表发生更改时自动使其无效,而不仅仅是基于经过的时间进行刷新。设置起来更复杂,但会给出更准确的结果。可能我的表达不正确。ID NOMBRE我必须用客户机列表更新tab1