Asp.net 无法使用DownloadProgressChangedEventHandler更新文本框

Asp.net 无法使用DownloadProgressChangedEventHandler更新文本框,asp.net,webforms,Asp.net,Webforms,我正在尝试使用WebClient和多线程从url下载文件。我尝试在下载文件时获取ProgressPercentage,我尝试在DownloadProgressChanged中执行此操作,但当我尝试使用debug.WriteLine将百分比打印到时,一切正常。但是当我想更改我的textbox.text时,它不起作用。我想在下载时更新我的文本框 用这个我调用了一个函数。 wc.DownloadProgressChanged+=新的DownloadProgressChangedEventHandler

我正在尝试使用WebClient和多线程从url下载文件。我尝试在下载文件时获取ProgressPercentage,我尝试在DownloadProgressChanged中执行此操作,但当我尝试使用debug.WriteLine将百分比打印到时,一切正常。但是当我想更改我的textbox.text时,它不起作用。我想在下载时更新我的文本框

用这个我调用了一个函数。
wc.DownloadProgressChanged+=新的DownloadProgressChangedEventHandler(DownloadProgressChangedEventHandler)

这是函数的内容:

 public void DownloadProgressChangedEventHandler(object sender, DownloadProgressChangedEventArgs e)
    {
        //Debug.WriteLine works normal.
        Debug.WriteLine(e.ProgressPercentage);
        TextBox1.Text = "Progress:" +e.ProgressPercentage.ToString();
        progressBarDownload3.Style.Add("width",e.ProgressPercentage.ToString()+"%");
    }

从技术上讲,如果您使用的是桌面或移动应用程序,但如果您使用的是ASP.NET服务器端组件,并且您的服务器正在为您下载某些内容,而页面正在被发回,则上述解决方案可能会很有用,那么,在下载完成并将响应发送回请求客户端之前,无法更新前端。这是一个完整的点,每一个发送到服务器的请求只有在响应完成/中断后才会返回,它不能仅仅报告进度然后返回到它运行的点

如果要显示正在下载的文件的进度,则应选择基于客户端(
JavaScript/jQuery
)的解决方案

如果您严格希望下载带有
C 35;
code的文件,然后尝试签出
SignalR
库,这可能有助于您将后端的更改报告给前端,但同时,仅报告下载进度会很复杂

或者,您可以将浏览器切换到下载url,它将为客户端自动下载文件,并且浏览器的默认下载进度条将对下载文件的客户端可见


不管怎样,您都无法从服务器下载文件并使用C#和ASP.NET WebForms/MVC报告下载到前端的每个
字节。除非您在操作中包含jquery/javascript。

谢谢您的帮助,那么使用Js/jquery如何使用Js访问这些数据呢?@OrhanÖzkerçin,如果您计划使用jquery/javascript,那么您必须找到允许下载功能的库,快速搜索会让我找到这个答案: