20 messaggi dal 30 maggio 2007
Salve, dovrei realizzare in asp.net mvc 4 un form di inserzione con la possibilità di effettuare l' upload multiplo di immagini con un tag associabile.
Per poter recuperare dal form anche i vari tag legati alle immagini ho creato dei semplici viewmodel

public class ImageViewModel
{
public string Tag { get; set; }
public HttpPostedFileBase File { get; set; }
}

public class AdvertViewModel
{
public string Description { get; set; }
public List<ImageViewModel> Images { get; set; }
public AdvertType Type { get; set; }
}

il controller
...
public ActionResult NewAdvert(int? type)
{
AdvertViewModel model = new AdvertViewModel();
model.Type = type.HasValue ? (AdvertType)type : AdvertType.Simple;
return View(model);
}

[HttpPost]
public ActionResult NewAdvert(AdvertViewModel model)
{
foreach (var image in model.Images)
{
if (image.File.ContentLength > 0)
{
var file = Path.GetFileName(image.File.FileName);
var path = Path.Combine(Server.MapPath("~/Uploads"), file);
image.SaveAs(path);
}

//DBStore...
}
return View();
}
...
e la vista
...
<div class="editor-field">
@for (int i = 0; i < (Model.Type == Test.ViewModels.AdvertType.Simple ? 1 : 4); i++)
{
@Html.TextBoxFor(m => m.Images[i].File, new { type = "file" })
@Html.EditorFor(model => model.Images[i].Tag)
<br />
}
...

In effetti tutto funziona però mi chiedevo se esisteva una soluzione più elegante magari con qualche libreria javascript.

Grazie in anticipo
Andrea

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.