Nel mio modello ho un'entità@ Html.DisplayNameFor per i dettagli del modello
public class Carrier
{
public Guid CarrierId { get; set; }
public string Name { get; set; }
}
Ho anche un ViewModel
public class CarrierIndexViewModel
{
public IEnumerable<Carrier> Carriers { get; set; }
public PagingInfo PagingInfo { get; set; }
}
Ho un fortemente tipizzato (CarrierIndexViewModel) Index View, che è supponiamo di mostrare una tabella di Carrier usando PagingInfo.
Sto cercando di utilizzare helper HTML per visualizzare Carrier.Name nel colpo di testa di mio tavolo Quando ho usato IEnumerable come modello per questo punto di vista ho avuto @Html.DisplayFor(model => model.Name)
Come posso ottenere lo stesso risultato utilizzando il mio nuovo CarrierIndexViewModel visualizzare il titolo per Carrier.Name?
non ho ancora provato questo, ma penso che si può solo dire "m => m. Carrier [0] .Name ". Poiché utilizza metadati dalle espressioni lambda internamente, non dovrebbe importare se "Carrier" è nullo o vuoto. – Monstieur
Posso suggerire un leggero ritocco? Se l'attributo Nome visualizzato non è stato applicato, ti consigliamo di restituire il nome della proprietà in questo modo: "restituisci nuovo MvcHtmlString (metadata.DisplayName ?? name)" – Darryl
Mi piace l'idea alla base di questa soluzione, ma sento che sento piccoli allarmi si spengono quando ci penso (forse non dovrei pensarci :)). Se dovessi prendere il tempo per scrivere il valore di visualizzazione di una proprietà nel mio codice, perché non prendi solo il tempo e scrivi il valore visualizzato nella vista? Sembra che sia stato scritto più codice solo per impedire l'inserimento di valori in una vista, quando è davvero dove dovrebbe essere comunque. – phreak3eb