Non riesco a capire perché questo non avrebbe funzionato. Sto usando ASP.NET MVC2 e sto semplicemente cercando di ignorare l'aspetto editor predefinito inserendo questo codice in /Shared/EditorTemplates/String.ascx:Editor per - L'elemento del modello passato nel dizionario è di tipo 'System.Int32', ma questo dizionario richiede un elemento del modello di tipo 'System.String'
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%=Html.TextBox(null, Model, new { @class="Text" }) %>
Poi nella mia pagina Vedi, io ho questo linea che è di tipo Int32:
<%: Html.EditorFor(model => model.AppID) %>
Per qualche ragione, questo genera l'errore:
System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'System.String'.
io non vedo come tutto può essere sbagliato da parte mia, è abbastanza semplice. Perché tenta di utilizzare l'editor per una stringa se il tipo è un Int32? Devo anche dire che ho scavalcato l'editor per un bool? digita (per visualizzare valori booleani come una casella di controllo) e funziona perfettamente sulla stessa pagina.
EDIT
Beh ho cercato molte volte, ma non ho visto questo post fino a quando ho trovato nei collegamenti "correlati". Suppongo che questo funzionerà, penso ancora che sia un'implementazione confusa e incoerente però:
Asp.net Mvc Display template of String, but now every simple type wants to use it!
Ok, beh credo che questa sia la parte confusa per me. Ho pensato che fosse usato il riflesso per scegliere il modello di editor corretto. Non è questo il caso? Come ho detto, ho un bool? modello e rende correttamente i valori booleani - non chiama il modello di stringa. – user949286
Hai un modello int separato? –
No, non lo so. Non penserei che ne avrei bisogno, perché ho creato per la prima volta il bool? modello, e tutto ha continuato a funzionare. Quindi ho creato il modello di stringa e si è verificato questo errore. Forse dovrei semplicemente creare il template int, ma potrei avere molti altri tipi e mi piacerebbe che usasse il template di default per quelli quindi non devo generare template ridondanti non necessari. – user949286