Sto utilizzando il framework di bootstrap di Twitter, quindi per ottenere i metodi EditorFor e DisplayFor per l'output di ciò che mi serve, ho creato modelli personalizzati per ciascuno dei tipi come stringa, testo, password ecc. . Per la mia pagina di login voglio un bool RememberMe, così come prima, ho creato il modello seguente e messo in in Boolean.cshtml:MVC 4 Modello personalizzato per bool (rasoio)
@model bool
<div class="control-group">
<div class="controls">
<label class="checkbox">
@Html.CheckBoxFor(m => m, new {@class = "checkbox"})
@Html.LabelFor(m => m)
</label>
</div>
</div>
abbastanza semplice, ma quando uso:
@Html.EditorFor(m => m.RememberMe)
Ricevo un'eccezione dicendo che il valore al basso non può essere nullo:
The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.Boolean'.
Cosa mi manca? Sembra che dovrebbe essere semplice. Il campo sull'oggetto del modello appare come segue:
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
Grazie.
AGGIORNAMENTO: Quindi sembra che alla fine si tratta di creare un oggetto modello di vista vuoto e passarlo alla vista invece di consentire a MVC di crearne uno da solo.
Potrebbe cercare di impostare il valore di' RememberMe' default con dataannotations '[DefaultValue (false)]' –