Почему IFormFile показывает значение null и как его исправить?

Я использую ASP.NET 5, MVC 6 в VS 2015. Я создаю веб-приложение. В моей форме у меня есть:

    <form method="post" enctype="multipart/form-data">
    <div id="uploadSection" >
        <label >Select files for upload</label>
        <input type="file" id="fileSelect" name="fileSelect" multiple />
    </div>

    <div>
        <input type="submit" id="thisbutton" value="button"  />
    </div>
    </form>

в моем контроллере:

        [HttpPost]
    public async Task<IActionResult> FileForm(FileViewModel vm, IFormFile file)
    {
        if (ModelState.IsValid)
        {
            //IFormFileCollection files = Request.Form.Files;
            string filePath = Path.Combine("C:", "transfers");
            //foreach (var file in files)
            //{
                if (file != null && file.Length > 0)
                {
                    var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                    await file.SaveAsAsync(Path.Combine(filePath, fileName));
                }
            //}
            ModelState.Clear();
        }
        return View();
    }

У меня есть гораздо большая форма с полями материнской формы, которые входят в мой FormViewModel (все поля заполняются так, как они должны), и я фактически попытался помещать IFormFileCollection, ICollection, IList, List в качестве параметров в вышеописанном методе также ставя его прямо в мою модель. Я делаю это как один файл или несколько, в модели или контроллере, я всегда получаю null. "Файлы IFormFileCollecion = Request.Form.Files" на самом деле работают, но я не хочу так поступать, потому что он должен работать так, как я есть или имел его. Когда я помещаю свойство для файлов в моей модели, я помещаю над ним "[Обязательный]", и он не запускается.

И, еще лучше, я запускал это несколько раз с помощью скрипача, и на самом деле это POSTING files--, так почему же их не бросают в модель?

У меня неправильные зависимости? Может ли кто-нибудь подумать о том, что может вызвать это?

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.AspNet.Http":  "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final"
  },

Ответы

Ответ 1

У вашего ввода файла есть атрибут имени "fileSelect". Имя вашего параметра для вашего действия - "файл". Сделайте их соответствующими, и они должны работать.