【问题标题】:MVC 5 Auto Refresh From ControllerMVC 5 从控制器自动刷新
【发布时间】:2015-03-25 02:53:11
【问题描述】:

我正在尝试从本地网络服务器加载一个 excel 文件,然后每 5 分钟左右刷新一次页面,以防该文件已被替换...

它用于显示时间表,有人会更新它,并且在整个工厂中,页面将显示在监视器上并且输出会改变......

我认为这将非常简单,我只需将刷新添加到 .html 文件的标题即可完成,但我认为只有使用常规 return View(); ...由于我使用的是重定向,我不确定它是否能够将其添加到标题中...有什么想法吗?

这是我添加到控制器的代码:

this.HttpContext.Response.AddHeader("refresh", "5; url=" + Url.Action("time"));
        return Redirect("http://dexweb/scheduler/hunting template.htm");

【问题讨论】:

  • 您应该会看到我的问题/答案How to implement real time data for a web page,这是我专门为解决此类问题而创建的。它解释了如何使用 AJAX 或 SignalR 在基础数据更改时保持网页上的数据更新。
  • 为什么要添加代码的屏幕截图而不是实际代码?
  • 因为是添加了两行代码...
  • @KyleRickaby 将代码作为文本而不是图片嵌入到您的问题中要好得多。代码是文字,不是图片。这使某人很难回答您的问题,因为如果他们想在答案中包含代码,则必须手动将其全部输入。

标签: c# asp.net-mvc model-view-controller asp.net-mvc-5


【解决方案1】:

您似乎正在重定向到某个 HTML 页面:

http://dexweb/scheduler/hunting_template.htm

在这个 html 里面你可以放一个<meta> 标签来强制它定期从服务器刷新:

<meta http-equiv="refresh" content="5">

显然,现在有更高级的方法可以实现从服务器到客户端的实时推送通知,例如 HTML5 WebSockets。

【讨论】:

  • 我不能这样做,因为更改模板的人每次都会创建新文件,而不是编辑现有文件。
  • 这个人不能把元标记放在他的模板里吗?
  • 它以一个excel文件开头,很难向他们展示如何将其保存为网页,更不用说进去编辑了:D
  • 我明白了。不幸的是,由于您正在重定向到一个完全不同的网站,因此您无法从 MVC 应用程序中做很多事情。您无法控制这些外部网站的行为。让您访问创建这些模板的目录的人怎么样?然后在重定向之前,您可以继续并通过添加元标记patch标记?
  • 嗯,我想到了另一件事。您可以呈现您网站的视图,而不是重定向到目标 html 模板。这个视图将只包含一个指向外部模板的&lt;iframe&gt;。然后你可以在控制器动作中设置刷新标题,就像你已经拥有的一样。
猜你喜欢
  • 2016-12-12
  • 1970-01-01
  • 2013-12-05
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
相关资源
最近更新 更多