Ho due modelli di editor: uno per i decimali e uno per i decimali? (Nullable)ASP.NET MVC 2 - Html.EditorPer un tipo nullable?
Ma quando ho un decimale nullable nel mio modello, si cerca di caricare l'editor decimale normale:
<%: Html.EditorFor(model => model.SomeDecimal)%>
<%: Html.EditorFor(model => model.SomeNullableDecimal)%>
Il primo funziona bene, e carica il modello di editor di decimali. Il secondo tenta anche di caricare il modello decimale (e fallisce perché non è un campo decimale).
Il messaggio di errore è:
The model item passed into the dictionary is null, but this dictionary requires
a non-null model item of type 'System.Decimal'.
I miei modelli sono dichiarati in questo modo:
modello decimale:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal>" %>
Nullable Decimale modello:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal?>" %>
so tha t Posso farlo funzionare passando il nome del modello, ad esempio
Ma preferirei che funzionasse automaticamente utilizzando il tipo proprio come tutti gli altri modelli.
<%: Html.EditorFor(model => model.SomeNullableDecimal,
"NullableDecimalTemplate")%>
I nomi dei modelli sono Decimal.ascx e Decimal? .ascx? – ZippyV
No sono Decimal.ascx e NullableDecimal.ascx –
Nessuno? .. Risulta che posso "ripararlo" copiando il codice NullableDecimal.ascx all'interno di Decimal.ascx. Stranamente, un decimale standard può essere usato nel modello nullable. Non so perché un decimale non annullabile funzionerà in un modello che ha il codice come: if (myDecimal.HasValue) –