Я пытаюсь использовать dropzone.js в существующей форме сообщения mvc, в которой есть связанная модель представления с данными.Ниже приведена форма бритвы:
@using (Html.BeginForm("Create", "InsurancePolicy", FormMethod.Post, new { @role = "form", @id = "form-id", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="row">
<div class="form-group col-lg-2">
<label>Esempio</label>
@Html.TextBoxFor(model => model.Id, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Id, "", new { @class = "text-danger" })
</div>
</div>
<div class="row">
<div class="form-group col-lg-12">
<div action="#" class="dropzone" id="dropzone-area">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
</div>
</div>
<button type="submit">Create</button>
}
<script type="text/javascript">
Dropzone.options.dropzoneArea = {
paramName: "file",
autoProcessQueue: false,
parallelUploads: 10,
maxFiles: 10,
addRemoveLinks: true,
uploadMultiple: true,
acceptedFiles: "application/msword, application/vnd.ms-excel, application/pdf, image/*",
};
</script>
Как вы можете видеть, я намереваюсь нажать кнопку отправки и перейти к действию после публикации - viewmodel с данными и Request.Files с загруженным файлом.Вот код контроллера:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(PolicyVM model)
{
if (ModelState.IsValid)
{
foreach (var fileKey in Request.Files.AllKeys)
{
}
return RedirectToAction("Index", "InsurancePolicy");
}
return View(model);
}
Проблема в том, что к запросу не прикреплено никаких файлов, я заполнил viewmodel, но никакого файла вообще.В Интернете я нашел разные решения, но все они с загрузкой ajax или с формами только для входного файла.Мне нужно отправить запрос со всеми данными Viewmodel и прикрепленными файлами.Заранее спасибо.