MVC: использование HttpPostedFileBase возвращает NULL

Я пытаюсь включить загрузку файла, он остается NULL все время. Вот моя модель:

   [Display(Name = "Upload Document")]
    [DataType(DataType.Upload), FileSize(102400)]
    public HttpPostedFileBase PathwaysToImpactUploadDocument { get; set; }

Мой взгляд: ProjectForm.cshtml

  @Html.EditorFor(m => m.PathwaysToImpactUploadDocument)

Upload.cshtml

@model HttpPostedFileBase

@{
    Layout = "~/Views/Shared/EditorTemplates/_Layout.cshtml";
}
@Html.TextBox("", null, new {@class = "form-control", type = "file"})
@Html.ValidationMessage("")

контроллер:

        [HttpPost]
        public ActionResult New(ProjectCreateViewModel model){
}

Но model.PathwaysToImpactUploadDocument всегда имеет значение NULL. Что мне не хватает?

1 ответ

Есть несколько вещей, которые кажутся здесь подозрительными:

  1. кажется, что на ваш взгляд нет тега формы или кнопки отправки (может быть, а может и не быть проблемой)
  2. Модель для вашего взгляда не является моделью для вашего метода действия

Я хотел бы убедиться, что ваш взгляд выглядит примерно так:

@model ProjectCreateViewModel
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) 
{
    @Html.TextBoxFor(m => m.file, new {@class = "form-control", type = "file"})
    @Html.ValidationMessageFor(m => m.file)
    <input type="submit">Upload</input>
}
Другие вопросы по тегам