我有一个包含在 _Layout.cshtml 中的部分视图。它只是有一个 javascript 函数,可以根据我的系统状态更改图像。我不需要重新加载任何数据,我不需要去控制器的代码做任何事情,我只需要重新加载那个局部视图。
我尝试了许多在此处找到的示例,但无法使它们中的任何一个起作用。无论如何,我觉得它们对于我正在做的事情来说太复杂了。任何指导将不胜感激。
谢谢,
史蒂夫
我有一个包含在 _Layout.cshtml 中的部分视图。它只是有一个 javascript 函数,可以根据我的系统状态更改图像。我不需要重新加载任何数据,我不需要去控制器的代码做任何事情,我只需要重新加载那个局部视图。
我尝试了许多在此处找到的示例,但无法使它们中的任何一个起作用。无论如何,我觉得它们对于我正在做的事情来说太复杂了。任何指导将不胜感激。
谢谢,
史蒂夫
如果部分被直接加载到布局中,则没有直接的方法来刷新它,因为它基本上是完整呈现页面的一部分。
最好的办法是$.load
通过点击控制器方法并将结果呈现到容器(如 div)中来呈现部分使用或任何可用的等效项。您必须通过观察document.ready
或类似的方式在加载了布局本身的脚本中执行此操作。一旦你有了它,那么通过根据需要多次点击控制器方法来继续重新加载或刷新内容是微不足道的。例如在 jQuery 中:
$(document).ready(function () {
RefreshPartial();
window.setInterval(RefreshPartial, 10000);
});
function RefreshPartial() {
$('#container').load('/some/controller/endpoint', {parameters});
}
这将调用控制器方法,并设置用 标识的元素的内部内容#container
。您可以RefreshPartial
根据需要多次调用。
部分视图仅存在于服务器上。“刷新”部分的唯一方法是返回服务器再次获取它。
显然,您必须在需要刷新的部分中做一些事情。不管是什么,都应该可以从 javascript 调用来进行刷新。