Model view controller 刷新renderPartial中的viewData对象

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",

我需要你的帮助

我有一个带有客户端列表的viewdata,在调用Index action方法时提供它

/*索引操作是打开视图的方法*/

一旦调用了索引方法,变量就被输入并显示视图

然后,我有一个对话框,其中呈现一个partialView,其中有一个包含客户端列表的表

<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