Класс «OpenFileDialog» не содержит определения для «ShowDialog ()» и «FileName» - PullRequest
0 голосов
/ 18 октября 2018

Код enter image description here

Список ошибок

enter image description here

IDE: Visual Studio 2015 .NET Framework Версия: 4.5.1 Шаблон проекта: ASP.NET MVC


Примечания:

  • Я уже добавил ссылку "System.Windows.Forms", чтобы использовать класс OpenFileDialog
  • Я добавил "с помощью System.Windows.Формы "(кстати, это необходимо, если я уже ссылался на пространство имен?)
  • Я несколько раз чистил и перестраивал решение
  • Я даже закрыл и снова открыл весь проект

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Поскольку вы используете ASP.NET, вы не можете использовать класс OpenFileDialog.Это для приложений Windows Forms.

Для загрузки файла вам понадобится использовать выгрузку файла на веб-странице. Вот один пример этого из MSDN с использованием элемента управления FileUpload.

Простой пример с использованием ввода HTML:

<input type="file" name="file" />

Вам придется обновить свой кодфайл также.

РЕДАКТИРОВАТЬ: я не знал, что это было для проекта MVC, а не веб-форм.

Вы не сможете использовать элемент управления asp: FileUpload, так как вы 'не использовать веб-формы.Тем не менее, это не сложно сделать это в MVC. Обратитесь к этой статье для всестороннего примера.Я извлек часть статьи ниже.

У вас будет какое-то действие, чтобы отобразить страницу и принять опубликованный файл на вашем контроллере:

    [HttpGet]  
    public ActionResult UploadFile()  
    {  
        return View();  
    }  
    [HttpPost]  
    public ActionResult UploadFile(HttpPostedFileBase file)  
    {  
        try  
        {  
            if (file.ContentLength > 0)  
            {  
                string _FileName = Path.GetFileName(file.FileName);  
                string _path = Path.Combine(Server.MapPath("~/UploadedFiles"), _FileName);  
                file.SaveAs(_path);  
            }  
            ViewBag.Message = "File Uploaded Successfully!!";  
            return View();  
        }  
        catch  
        {  
            ViewBag.Message = "File upload failed!!";  
            return View();  
        }  
    }

И на ваш взгляд, у вас будет форма для загрузки и отправки файла:

@using(Html.BeginForm("UploadFile","Upload", FormMethod.Post, new { enctype="multipart/form-data"}))  
{         
    <div>  
        @Html.TextBox("file", "", new {  type= "file"}) <br />       
        <input type="submit" value="Upload" />      
        @ViewBag.Message        
    </div>                  
}  
0 голосов
/ 18 октября 2018

Вы не можете использовать OpenFileDialog, потому что MVC не позволяет этого, то, что вам нужно сделать, это использовать

<input type="file"/>

На внешнем интерфейсе

Редактировать: просто чтобы быть немного более понятным,думаю, что вы пытаетесь запустить команду OpenFileDialog на компьютере, который является клиентом, в Интернете в целом вы не можете использовать такой подход

здесь он более объяснен OpenFileDialog в cshtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...