【问题标题】:ASP .NET Web Application Background Page LoadASP .NET Web 应用程序后台页面加载
【发布时间】:2015-12-16 08:09:43
【问题描述】:

我已经开始使用 C# 在 asp.net 中创建仪表板 Web 应用程序。目前有一个名为 Dashboard.aspx 的页面,它在 IO 文件处理之后执行大量代码来生成 html 并将其写入页面上的 asp 控件。

客户要求提供另一个页面,即仪表板的不同视图。我创建了另一个页面 simpleDashboard.aspx 并编写了所有代码。

问题是simpleDashboard.aspx需要的文件处理是在Dashboard.aspx中进行的。这意味着系统上的文件只有在浏览器中查看页面 Dashboard.aspx 时才会更新(当 page_load 方法被启动时)。因此,simpleDashboard.aspx 报告过时的信息 - 因为没有进行任何文件处理。

有没有办法从 simpleDashboard.aspx 启动 Dashboard.aspx page_load 方法或让它在后台连续运行?重新设计应用程序并将处理放在单独的类文件中可能会更好,但我并不热衷于这样做,因为分离和重新编写所有 html 写入和 IO 处理需要大量工作。

【问题讨论】:

    标签: c# asp.net .net


    【解决方案1】:

    是的,这是可能的。

    执行此操作的快速而肮脏的方法是使用 iframe。在你的 simpleDashboard.aspx 中添加这样的内容

    <div id="map" style="display:block; visibility:hidden"> 
      <iframe src="Dashboard.aspx" height="300px" width=" 100%" ></iframe>
    </div>
    

    这样做的正确方法,当然你已经知道答案是把逻辑从Dashboard.aspx分离到一个单独的文件中,然后从simpleDashboard.aspx调用它

    【讨论】:

    • 出于兴趣,您是否知道将处理与页面分离的最佳方法?我遇到的问题是后面的代码循环遍历文本文件的目录,对于每个文本文件,它为 asp 控件创建一个 html 表,然后在处理最后一个文件结束时将所有表添加到控件中。我想我可以将该处理放在一个单独的类中,并将所有结果放入一个数组中并将其传递给页面。然后页面将使用数组作为源将html写入asp控件?还有 - 谢谢!
    • 这也可以。但我的建议是将循环工作与页面加载分开。您不希望您的用户一直等待。您想让他们先加载页面,然后进行循环,一旦循环完成,您将向他们展示表格。如果你熟悉ajax,这很容易做到。
    猜你喜欢
    • 2020-08-12
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多