Javascript MVC视图中的自动刷新标签

Javascript MVC视图中的自动刷新标签,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我的控制器中有一个自动刷新方法(如下所示)。在其中,我将更新ViewBag中的数据,这是我在视图标签中使用的数据。但我无法自动刷新标签。请帮帮我 var waitHandle = new AutoResetEvent(false); ThreadPool.RegisterWaitForSingleObject(waitHandle,(state, timeout) => { // my viewbag viewbag.time = DateTime.Now.TimeOfD

我的控制器中有一个自动刷新方法(如下所示)。在其中,我将更新
ViewBag
中的数据,这是我在视图标签中使用的数据。但我无法自动刷新标签。请帮帮我

var waitHandle = new AutoResetEvent(false);
ThreadPool.RegisterWaitForSingleObject(waitHandle,(state, timeout) => 
{
    // my viewbag
    viewbag.time = DateTime.Now.TimeOfDay;

    viewbag=date
}, null, TimeSpan.FromSeconds(5), false);

MVC不像WebForms那样工作(在WebForms中,重新分配值会填充到UI)。您需要编写一个单独的操作(或WebAPI方法),并使用AJAX/JavaScript来获取更新。(或者,您可以使用信号器,但这可能是过度使用)


此外,如果这是一个重复发生的事件,您可能需要查看Quartz.NET之类的库来执行该操作。然后,将更新发布到共享资源(看起来您正在存储上次执行的时间戳)。然后,在客户端上使用
setInterval
/AJAX检索并显示该值。

感谢您的快速响应,您能给我推荐一些示例吗codes@user3414462字体那真是一个很棒的。但有几件事我想不出来。1.每5秒刷新一次。我猜它是通过索引页下面的脚本实现的。但我不知道怎么做。2.您提到过,这是一个基于集线器动态生成的库。没有“~/signalr/hubs”的物理文件,它是如何工作的。我可以在我的项目中使用相同的引用吗?SignalR使用类似于推送通知的内容,因此当服务器上发生某种情况时,客户端会立即接收到它。5秒的延迟是因为这是为SimpleJob设置的延迟(每次作业运行时,它都会向客户端发送一些内容)~/signar/hubs是一个文件,它只是由服务器编写的,不是静态文件(例如jquery)。是的,您可以在自己的项目中引用jquery、jquery.signal和~/signal/hubs。很抱歉,我找不到您为SimpleJob设置延迟的位置。请帮助我修改该值