2014-02-12 3 views
0

Я хочу опубликовать свойство сложной модели на HttpPostedFileBase.MVC post complex HttpPostedFileBase

Контроллер

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create(AlbumImagesLoc entity, int albumId, HttpPostedFileBase ImageUrl) 
    { } 

Посмотреть

@Html.TextBoxFor(model => model.AlbumImage.ImageUrl, new { type = "file" }) 
@Html.ValidationMessageFor(model => model.AlbumImage.ImageUrl) 

Проблема теперь является HttpPostedFileBase всегда null, потому что его имя должно быть AlbumImage.ImageUrl.

Как я могу избежать null в коде MVC?

ответ

0
public class AlbumImagesLoc 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public AlbumImage ImageUrl { get; set; } 
} 

[HttpGet] 
public ActionResult Create() 
{ 
    return View(new AlbumImagesLoc()); 
} 


[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create(AlbumImagesLoc entity, int albumId) 
{ 
    var albumImagesLoc = new AlbumImagesLoc(); 
    albumImagesLoc.Name = clientViewModel.Name; 
    albumImagesLoc.AlbumImage.Add(AlbumImagesLoc.ImageUrl); 
    db.AlbumImagesLoc.Add(albumImagesLoc); 
    db.SaveChanges(); 
    return RedirectToAction("Index"); 
} 

@Html.TextBoxFor(model => model.AlbumImage.ImageUrl, new { type = "file" }) 
@Html.ValidationMessageFor(model => model.AlbumImage.ImageUrl) 
0

Проверить в представлении и посмотреть на "encetype"

@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, 
new { enctype = "multipart/form-data", @class = "form-horizontal" })) 
Смежные вопросы