12 messaggi dal 27 marzo 2015
Salve, ho creato un progetto MVC con VS15 utilizzando il wizard. Poi ho cercato di estendere la classe applicationuser per aggiungere un campo a EF di type byte[] per archiviare in sql una immagine. Lo scopo è portare, dopo l'autenticazione, l'immagine del utente connesso al posto del nome nella barra di navigazione. ho implementato queste modifiche:
in identitymodels.cs:
public byte[] IconSelfie { get; set; }
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}

public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
in AccountViewModels:

public class LoginViewModel
{
[Required]
[Display(Name = "Posta elettronica")]
[EmailAddress]
public string Email { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[Display(Name = "Avatar")]
public byte[] IconSelfie { get; set; }

[Display(Name = "Memorizza account")]
public bool RememberMe { get; set; }
}

in _LoginPartial.cshtml ho aggiunto:
@model ClickOnHealth.Models.ApplicationUser
per utilizzare models.iConSelfie e i due metodi per trasformare da byte[] a image e viceversa.

Purtroppo, in questa fase, la classe Model è sempre null, quindi non ho la disponibilità della proprietà iconselfie.

Non so se sono stato molto chiaro, ma non riesco a venirne a capo.
grazie per eventuali supporti
saluti
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
quando il browser deve visualizzare un'immagine, la ottiene effettuando una apposita richiesta al server.
Anche in questo caso, dovresti predisporre un'action che ha il solo scopo di servire le immagini degli avatar, come in questo esempio di Mirko Pastorelli.
http://www.aspitalia.com/script/1089/Visualizzare-Immagine-Memorizzata-Database-Tramite-ASP.NET-MVC.aspx

Ne consegue che la proprietà IconSelfie nel LoginViewModel è superflua, dato che ormai il compito di fornire i bytes al client l'ha già assolto la nuova action che avrai creato.

Nella view dovrai giusto creare un tag <img> il cui attributo src punta a questa nuova action, proprio come vedevi nell'articolo che ti ho linkato.
Probabilmente, nel LoginViewModel, dovrai creare la proprietà ID che conterrà l'id dell'utente e che ti servirà per costruire il valore dell'attributo src.

ciao,
Moreno

Enjoy learning and just keep making
12 messaggi dal 27 marzo 2015
ho letto l'articolo, geniale
grazie mille lo provo subito e ti faccio sapere

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.