OpenFileDialog зависает, ожидая локального хоста
Я пытаюсь создать свое первое диалоговое окно "Файл" с использованием C# и MS Web Developer 2010. Я установил ссылку System.Windows.Forms (на вкладке.NET вкладка "COM" вызвала ошибку), и импортировал пространство имен ОК. Я нашел несколько очень полезных сайтов новичков для этого, и у меня есть код ниже.
Моя проблема в том, что когда я вызываю его с помощью кнопки, мой браузер выдает мне сообщение "В ожидании локального хоста" навсегда, и ничего не происходит. (Я свернул все окна, чтобы убедиться, что мое диалоговое окно не скрывается за чем-то другим.) На форумах есть несколько сообщений, в том числе здесь о Stackru (зависание графического интерфейса WinFors при вызове OpenFileDialog.ShowDialog), в которых обсуждается эта проблема, но я не могу найти решение.
На многих форумах обсуждается решение, которое подразумевает запуск процессов.NET в разных потоках. Может ли быть так, что Microsoft действительно ожидает, что я пойму что-то подобное, чтобы использовать этот простой элемент управления?
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 ответ
Вы не можете использовать оба элемента управления Windows и веб вместе. OpenFileDialog
хорошо работает, когда ваше приложение на localhost
, После того, как вы опубликовали код на сервере и попытаетесь запустить приложение из клиента, FileDialog
не будет открыт в клиенте.
Вы можете просто использовать элемент управления FileUpload для загрузки файлов, если это то, чего вы хотите достичь.