1

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

我尝试了许多在此处找到的示例,但无法使它们中的任何一个起作用。无论如何,我觉得它们对于我正在做的事情来说太复杂了。任何指导将不胜感激。

谢谢,

史蒂夫

4

2 回答 2

6

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

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

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

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

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

于 2012-01-23T19:04:44.140 回答
1

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

显然,您必须在需要刷新的部分中做一些事情。不管是什么,都应该可以从 javascript 调用来进行刷新。

于 2012-01-23T19:10:50.347 回答