Parece que no puedo entender por qué esto no funcionaría. Estoy usando ASP.NET y MVC2 Simplemente estoy tratando de anular la aparición editor por defecto colocando este código en /Shared/EditorTemplates/String.ascx:EditorPara - El elemento de modelo pasado al diccionario es del tipo 'System.Int32', pero este diccionario requiere un elemento de modelo de tipo 'System.String'
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%=Html.TextBox(null, Model, new { @class="Text" }) %>
Luego, en mi página de Vista, tengo este línea que es de tipo Int32:
<%: Html.EditorFor(model => model.AppID) %>
Por alguna razón, el resultado es el error:
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'.
no veo cómo algo podría estar mal en mi final, es bastante simple. ¿Por qué trata de usar el editor para una cadena si el tipo es un Int32? También debo mencionar que he anulado al Editor por un bool? escriba (para representar valores booleanos como una casilla de verificación) y funciona perfectamente en la misma página.
EDITAR
Bueno, yo han buscado muchas veces, pero no vi este post hasta que me encontré en los enlaces "relacionados". Supongo que esto va a funcionar, sigo pensando que es una aplicación confusa e inconsistente sin embargo:
Asp.net Mvc Display template of String, but now every simple type wants to use it!
Ok, bueno, supongo que esa es la parte confusa para mí. Pensé que utilizaba la reflexión para elegir la plantilla de editor correcta. No es ese el caso? Como dije, tengo bool? plantilla, y representa valores booleanos correctamente; no llama a la plantilla de cadena. – user949286
¿Tiene una plantilla int separada? –
No, yo no. No pensaría que necesitaría uno, porque primero creé el bool? plantilla, y todo continuó funcionando. Luego creé la plantilla de cadena y ocurrió este error. Tal vez debería simplemente crear la plantilla int, pero puedo tener muchos otros tipos y me gustaría usar la plantilla predeterminada para esos, así no tengo que generar plantillas redundantes innecesarias. – user949286