Есть ли способ определить элементы управления загрузкой файлов с помощью помощника Razor в ASP.NET MVC3?
Нет html-помощника для ввода файлов, но что не так просто делать
@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new {enctype = "multipart/form-data"})) { <input type='file' name='blah' id='blah' /> }
В 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/
ИСПОЛЬЗУЯ Бритву
@*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/> }