【发布时间】:2015-11-09 15:36:29
【问题描述】:
我正在尝试在 C# 中打开 OpenFileDialog(代码隐藏,在 asp.net 页面上)。因为常规引用和 system.windows.form 有一些冲突,所以我不得不在线程中使用 OpenFileDialog 框,如下所示:
protected void Button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(BrowseForFile));
newThread.SetApartmentState(ApartmentState.STA);
newThread.Start();
}
static void BrowseForFile()
{
System.Windows.Forms.OpenFileDialog MyFile = new System.Windows.Forms.OpenFileDialog();
if (MyFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
}
}
页面的工作方式意味着这必须在 C# 中 - 使用 asp.net 的文件上传将不起作用。
现在,OpenFileDialog 看起来很好,我可以从中获取值,但理想情况下,我需要将值传递到线程(BrowseForFile)并让它与页面上的其他控件一起工作,以便进行设置。但是,我对使用线程非常陌生。
有人可以告诉我,基本上,如何从 Button1_Click 获取整数到 BrowseForFile,以及如何从 BrowseForFile 在页面上设置标签?
【问题讨论】:
-
您无法在服务器上显示 UI。您需要使用 HTML。
-
为什么这个标签是 asp.net?对我来说看起来像 windows 窗体?
-
这可能出现在进行开发时工作,因为您的服务器是您正在开发的同一台计算机,localhost,但在 ASP.NET 应用程序中使用
System.Windows.Forms是几乎总是错的。
标签: c# asp.net multithreading