Я начал работать с MVC4 + EF и столкнулся с проблемой с загрузкой изображения: Я хочу, чтобы сохранить путь изображения к БД, но фактический файл ~/App_Data/
Передача несколько объектов в контроллер MVC
Мне нужно передать «HttpPostedFileBase
» и мой пользовательский «Image
» объектов для «Create
». Я создал класс «ImageUpload
» для передачи обоих объектов.
"Image
" Класс:
public class Image
{
public int Id { get; set; }
public string Name { get; set; }
public string Path { get; set; }
public int DepartmentId { get; set; }
}
"ImageUpload" Класс:
public class ImageUpload
{
public Image image { get; set; }
public HttpPostedFileBase file { get; set; }
}
Вид:
@model MvcBannikov.Models.ImageUpload
@using (Html.BeginForm("Create", "Image", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>New Photo</legend>
<div class="editor-label">
<p>Name:</p>
</div>
<div class="editor-field">
@Html.EditorFor(model => model.image.Name)
@Html.ValidationMessageFor(model => model.image.Name)
</div>
<div class="editor-label">
<p>Path:</p>
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.file, new { type = "file" })
@Html.ValidationMessageFor(model => model.file)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
"Create
" метод:
[HttpPost]
public ActionResult Create(ImageUpload image)
{
......................
}
Проблема заключается в том, что ImageUpload
объекта NULL
: (((
Причина, почему мне нужен файл и класс изображения является то, что класс изображения имеет ID Department - мне нужно что id
.
Возможно, вы знаете другое решение, как я могу передать DepartmentId
вместе с файлом?
Спасибо за помощь
Благодарим за сообщение. Класс My ImageUpload был создан как ViewModel, и я думаю, что понимаю основную идею, но она не работает с кодом, который я создал. Я создал строго типизированный вид этого действия «Создать», но в любом случае это NULL. Может быть, проблема в моем представлении? – user1274184