Supponiamo di avere una vista parziale denominata UserDetails
la cui clausola @model
è impostata su una classe del modello denominata User
.Come faccio a richiamare una vista parziale con "null" per il suo modello?
Ora supponiamo di avere un'altra classe modello che sembra qualcosa di simile:
public sealed class SpecialModel
{
public User SpecialUser;
public ... // other stuff
}
All'interno una vista per la SpecialModel
, voglio richiamare la mia visione parziale di cui sopra:
@model MyProject.Models.SpecialModel
@{ ViewBag.Title = "..."; }
<div class='user'>@Html.Partial("UserDetails", Model.SpecialUser)</div>
questo funziona bene se l'utente non è null
. Tuttavia, se l'utente è null
, ottengo questa eccezione:
System.InvalidOperationException
: La voce del modello passato nel dizionario è di tipo 'MyProject.Models.SpecialModel', ma questo dizionario richiede un elemento del modello di tipo 'MyProject .Models.User'.
Chiaramente, il messaggio di eccezione sta mentendo. Come faccio a correggerlo correttamente in modo che possa passare normalmente null
?
La seguente soluzione [qui] (http://stackoverflow.com/a/12037580/649497) supera il lato negativo! – Mojtaba