OpenFileDialog挂起,等待Localhost

时间:2015-04-29 21:10:46

标签: c# asp.net winforms visual-web-developer-2010 opendialog

我正在尝试使用C#和MS Web Developer 2010创建我的第一个文件对话框。我设置了System.Windows.Forms参考(从.NET选项卡,COM选项卡上的一个给了我一个错误),并导入名称空间OK。我找到了一些非常有用的新手网站,我已经得到了以下代码。

我的问题是,当我用一个按钮调用它时,我的浏览器会永远给我“等待本地主机”消息,没有任何反应。 (我确实最小化了所有窗口,以确保我的对话框没有隐藏在其他内容之后。)论坛上有很多帖子,包括StackOverflow (WinFors GUI Hangs When Calling OpenFileDialog.ShowDialog),讨论这个问题,但我找不到解决方案。

很多论坛讨论的决议涉及让我的.NET进程在不同的线程上运行。可能是微软实际上希望我理解使用这种简单控件的那种东西吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public void OpenDialog(object sender, EventArgs e)
    {
        String MyFile = string.Empty;
        String input = string.Empty;
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.ShowHelp = true;
        dialog.Filter =  "txt files (*.txt)|*.txt|All files (*.*)|*.*";
        dialog.InitialDirectory = "D:";
        dialog.Title = "This is a test dialog";
        dialog.ShowDialog();
    }
}

编辑(来自评论)

我要做的是允许我的用户将网站上创建的文件保存到他选择的文件夹中。

1 个答案:

答案 0 :(得分:4)

您不能同时使用Windows和Web控件。当您的应用程序位于OpenFileDialog时,localhost效果很好。将代码发布到服务器并尝试从客户端运行应用程序后,将不会在客户端中打开FileDialog

您可以简单地使用FileUpload控件上传文件,如果这是您想要实现的目标。