我使用C#作为语言从Visual Studio 2017创建者创建了一个ASP .NET Web窗体应用程序。我对模板进行了最小的更改,我的网页加载了一个3D图像,通过按钮和文本字段获取一些额外的参数,将其发送到服务器进行处理。它位于一个目录中,由一个商业程序处理,独立于Visual Studio,它最初写入带有图像ID的目录(比如说ABCD),然后写入带有图像截取日期的目录(比如说20170629)。处理,2-5分钟,它将分析结果写入具有当前日期(比如20171031)的新文件夹中的文本文件,其中名称由15位代码和已知扩展名(例如123456789012345.txt)组成。它位于Java Derby数据库中,我没有找到.NET的任何连接器。
同时,网页显示已发送数据的摘要。我工作的是Button,当按下时检查所提到的目录(20171031)是否已经创建显示asp:UpdatePanel带进度(1/3阶段通过,2/3阶段通过等)和文件123456789012345.txt准备好它从它获取数据,在服务器端它计算一些值并显示它们。由于等待有几个公共异步任务和公共异步任务方法来搜索文件外观。
我想避免手动按下按钮,以便显示处理阶段,一旦文件123456789012345.txt准备就绪,就会计算出值。目前我尝试了各种方法,但没有成功。我宁愿避免每30秒重新加载整个页面,因为用户可能会感到困惑。
asp:UpdatePanel,据我所知,需要按下Button或用户端的其他一些交互。如果我在Load_Page方法中的aspx.cs文件中使用UpdatePanelName.Update();无论出于何种原因,面板都没有更新。由于使用了等待CalculateImageAsync(),我发现在Page__Load中使用它的唯一方法是将其作为受保护的async void Page_Load(object sender,EventArg e),但是当加载页面时,它永远不会加载。其他任何东西都需要用户互动,我想避免。我被卡住了......
我是ASP .NET和C#的新手,所以也许我做错了什么或错过了一些不错的.NET方法。我将不得不寻求帮助。我已经看到网页正在按照我想要的方式完成工作,例如在日志中,您提交了一个转换为PDF的DOCX文件 - 一旦您提交了一个包含生成PDF的页面,您就会提交它。
此致,Marcin