Ho un modello di dati in questo modocome caricare/visualizzare immagini utilizzando ASP.net MVC4 con Entity Framework
public class NewsItem
{
public virtual int Id { get; set; }
public virtual string NewsTitle { get; set; }
public virtual string NewsContent { get; set; }
public virtual byte[] NewsImage { get; set; }
public virtual DateTime DateAdded { get; set; }
public virtual bool IsLive { get; set; }
}
ho quindi visualizzare questi dati tramite una vista in questo modo:
@model BusinessObject.Domain.NewsItem
<div class="row-fluid">
<h3>
@Html.ValueFor(model => model.NewsTitle)
</h3>
<div class="span5">
<img src="~/Content/images/stock.jpg" />
</div>
<div class="span7">
<p>
@Html.ValueFor(model => model.DateAdded)
</p>
<p>
@Html.ValueFor(model => model.NewsContent)
</p>
</div>
</div>
I quindi salvare i dati utilizzando le _db.SaveChanges() nel mio controller in questo modo:
[Authorize]
[HttpPost]
public ActionResult Create(CreateNewsViewModel input)
{
if (ModelState.IsValid)
{
var news = new NewsItem();
news.NewsTitle = input.nTitle;
news.NewsContent = input.nContent;
news.DateAdded = input.nDateAdded;
news.IsLive = input.nIsLive;
Mydb data = new Mydb();
data.NewsItems.Add(news);
data.SaveChanges();
return View("Index", data.NewsItems);
}
else
{
return View(input);
}
}
Attualmente non ho un po 'di caricamento delle immagini. Come andrei su questo? Nel mio db ho un campo binario, e il mio tipo di dati nel mio oggetto è un byte []. Ma non so dove devo gestire il caricamento dell'immagine?
Ho bisogno di un'azione separata che restituisca la vista? Alcuni suggerimenti su questo sarebbe grandioso.
Acclamazioni
Probabilmente avrete bisogno di cambiare 'byte [] toPutInDb = WebImage.GetBytes();' a 'byte [] toPutInDb = immagine.GetBytes(); ' –
Quindi, se eseguo la roba WebImage nel mio controller nell'azione httppost, imposta il campo come valore byte [], quindi questo verrà eseguito su data.SaveChanges(). Sembra buono. Darò un tentativo dopo. Grazie per le risposte. –
My WebImage.GetImageFromRequest restituisce sempre null. Qualche idea sul perché? –