Я не могу понять, почему это не сработает.Я использую ASP.NET MVC2 и просто пытаюсь переопределить внешний вид редактора по умолчанию, поместив этот код в /Shared/EditorTemplates/String.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%=Html.TextBox(null, Model, new { @class="Text" }) %>
Затем на своей странице просмотра яесть эта строка типа Int32:
<%: Html.EditorFor(model => model.AppID) %>
По какой-то причине это приводит к ошибке:
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'.
Я не понимаю, как что-то может быть не так с моей стороныэто довольно просто.Почему он пытается использовать редактор для строки, если тип Int32?Я также должен упомянуть, что я переопределил Редактор для bool?тип (для отображения логических значений в качестве флажка), и он прекрасно работает на той же странице.
РЕДАКТИРОВАТЬ
Хорошо, я искал много раз, но я не сделалвидеть этот пост, пока я не нашел его в "Связанные" ссылки.Я предполагаю, что это будет работать, но я все еще думаю, что это запутанная и противоречивая реализация:
Asp.net Mvc Показать шаблон String, но теперь каждый простой тип хочет использовать его!