在MVC 3中刷新部分视图

时间:2012-01-23 18:56:39

标签: asp.net-mvc-3 partial-views partial-page-refresh

我有一个部分视图,我已经包含在我的_Layout.cshtml中。它只是有一个javascript函数,可以根据我的系统状态更改图像。我不需要重新加载任何数据,我不需要去任何控制器的代码,我只需要重新加载那个局部视图。

我尝试了很多我在这里找到的例子但却无法使用它们。无论如何,我觉得他们似乎太复杂了。任何指导都将不胜感激。

谢谢,

史蒂夫

2 个答案:

答案 0 :(得分:6)

如果部分直接加载到布局中,则没有直接的方法来刷新它,因为它基本上是完整渲染页面的一部分。

最好的办法是通过点击控制器方法并将结果渲染到容器(如div),使用$.load或任何可用的等效项来渲染部分。您必须在加载了布局本身的脚本中执行此操作,方法是观察document.ready或类似的内容。一旦你有了这个,那么通过按照你需要多次点击控制器方法来保持重新加载或刷新内容是微不足道的。例如在jQuery中:

$(document).ready(function () {
    RefreshPartial();
    window.setInterval(RefreshPartial, 10000);
});

function RefreshPartial() {
    $('#container').load('/some/controller/endpoint', {parameters});    
}

这将调用controller方法,并设置用#container标识的元素的内部内容。您可以根据需要多次拨打RefreshPartial

答案 1 :(得分:1)

部分视图仅存在于服务器上。刷新"的唯一方法部分是返回服务器再次获取它。

显然,你必须在需要刷新的部分中做一些事情。无论如何,都应该从javascript调用以进行刷新。