ASP.NET MVC3 RAZOR: загрузка файла дает ноль в качестве количества файлов - PullRequest
0 голосов
/ 23 февраля 2012

Мне нужно загрузить несколько файлов на веб-сервер, используя MVC3 с RAZOR.У меня есть следующий код.В контроллере я получаю ноль в качестве количества файлов.Как исправить это, чтобы получить фактическое количество загружаемых файлов и получить содержимое?

public class MyFileController : Controller
{

    public ActionResult MyFileProcessActionTest()
    {
        return View();
    }

    [HttpPost]
    public ActionResult MyFileProcessActionTest(IEnumerable<System.Web.HttpPostedFileBase> files)
    {

        int fileCount = files.Count<System.Web.HttpPostedFileBase>();
        return RedirectToAction("Index");
    }
}

ПРОСМОТР

@{
ViewBag.Title = "MyFileProcessActionTest";
}

<h2>MyFileProcessActionTest</h2>

@using (Html.BeginForm())
{

<input type="file" name="files" id="file1" />
<input type="file" name="files" id="file2" />

<input type="submit"  />

}

ЧТЕНИЕ:

  1. Связывание HttpPostedFileBase с использованием Ajax.BeginForm

  2. ASP.NET MVC Загрузка и выгрузка файлов http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files

  3. Какпроверить тип файла для загрузки файла?

  4. Загрузка файла MVC 3 и привязка модели

Ответы [ 2 ]

8 голосов
/ 23 февраля 2012

Вы должны включить атрибут enctype в тег form, чтобы указать, что форма должна содержать файлы.

@using (Html.BeginForm("YourAction", "Controller", FormMethod.Post, new {enctype="multipart/form-data"))
{
}
5 голосов
/ 23 февраля 2012

измените форму, чтобы она соответствовала следующим

@using(Html.BeginForm("action","controller",FormMethod.Post,new{encType = "multipart/form-data"})){
{

<input type="file" name="files[0]" id="file1" />
<input type="file" name="files[1]" id="file2" />
<input type="file" name="files[2]" id="file3" />

<input type="submit"  />

}

индексам 0,1,2, что позволяет связывателю модели связываться с IEnumerable, кроме того, encType также необходимо указывать при публикации файлов на сервере

...