Questa domanda è il risultato della discussione QUI ed è stata spostata da HERE .
È davvero una buona pratica fornire OGNI valore che visualizzi in qualsiasi vista tramite un modello?
Soprattutto variabili come il nome utente corrente. Anche Microsoft odora quanto segue nel modello predefinito per _LoginPartial
in ASP.NET MVC 3 +:
"Hello " + User.Identity.GetUserName() + "!"
Penso che sia giusto non fornire questo tramite un modello poiché è molto meglio alla luce della manutenibilità. O dovresti obbedire alle "regole MVC" e aggiungere un modello / sottomodello a ogni pagina / modello per fornire tali elementi e passarli nelle viste e nei parziali?
Come risolvi questi "problemi" o quale pensi sia il modo migliore di fare queste cose?
L'ereditarietà sarebbe un'opzione:
public class BaseUserModel
{
public string UserName { get; set; }
}
Richiede che ogni modello erediti da un modello di base come sopra contenente tali valori.
Ma questo potrebbe causare problemi se hai bisogno / vuoi ereditare un'altra classe per qualche modello?