Управление загрузкой файлов с использованием Razor в ASP.NET MVC3 - PullRequest
15 голосов
/ 13 января 2011

Есть ли способ определить элементы управления загрузкой файлов с помощью помощника Razor в ASP.NET MVC3?

Ответы [ 3 ]

27 голосов
/ 13 января 2011

Нет html-помощника для ввода файлов, но что не так просто делать

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new {enctype = "multipart/form-data"})) {
    <input type='file' name='blah' id='blah' />
}
4 голосов
/ 21 февраля 2011

В Microsoft.Web.Helpers есть класс FileUpload ... http://msdn.microsoft.com/en-us/library/microsoft.web.helpers.fileupload(v=vs.99).aspx

Лучший / единственный способ найти его - использовать NuGet в VisualStudio. Ищите пакет "microsoft-web-helpers" в онлайн-хранилище. Однако есть одна проблема, с которой я столкнулся. Одной из зависимостей пакета является Facebook.Helper, который он будет устанавливать одновременно. Он поместит файл с именем «Facebook ???. Cshtml» (забыл точное имя) в каталог AppCode вашего проекта. Проблема в том, что у Facebook ???. Cshtml были некоторые зависимости WebMatrix, которых я не имел и не хотел устанавливать. Простое удаление файла Facebook.cshtml (который я не собирался использовать в любом случае), казалось, решило проблему. После этого я смог скомпилировать и отладить как обычно и использовать класс FileUpload.

Вот учебник, который я нашел, который использует его:

http://blog.tallan.com/2011/02/04/using-mvc3-razor-helpers-and-jcrop-to-upload-and-crop-images/

0 голосов
/ 17 июня 2013

ИСПОЛЬЗУЯ Бритву

@*requieres installing Asp helpers / you can do it her from NuGet or logging som admin in packages*@
@using Microsoft.Web.Helpers;
@{
    var fileName = "";
    if (IsPost) {
        var fileSavePath = "";
        var uploadedFile = Request.Files[0];
        fileName = Path.GetFileName(uploadedFile.FileName);
        fileSavePath = Server.MapPath("~/UploadedFiles/" +
          fileName);
        uploadedFile.SaveAs(fileSavePath);
    }
}

      @FileUpload.GetHtml(
        initialNumberOfFiles:1,
        allowMoreFilesToBeAdded:false, 
        includeFormTag:false,
        name: "Upload1",
        uploadText:"Upload")

    @if (IsPost) {
        <span>File uploaded!</span><br/>
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...