Я хочу создать шаблон отображения только для строковых свойств и использовать значение по умолчанию для всех остальных.
Я попытался создать string.cshtml в Views/Shared/DisplayTemplates со следующим содержимым:
@model string
@Html.TextBoxFor(m => m, new { @readonly = "readonly" })
Теперь у меня проблема, когда я пытаюсь открыть любое представление, использующее DisplayFor(m => m.property), оно показывает ошибка вроде: Элемент модели, переданный в словарь, имеет тип «System.DateTime», но для этого словаря требуется элемент модели типа «System.String». или: Элемент модели, переданный в словарь, имеет тип «System.Int64», но для этого словаря требуется элемент модели типа «System.String».
Я знаю, что могу решить эту проблему, добавив шаблон отображения для каждого используемого типа, но я полагаю, что также возможно использовать шаблон «по умолчанию» для всех типов, где пользовательский шаблон не определен?
ОБНОВЛЕНИЕ После ответа Дарина я проверил учебник Брэда и изменил шаблон на:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @readonly = "readonly" })
Он основан на шаблоне «по умолчанию» и работает для всех типов.