ASP.NET MVC 4 определяет шаблон отображения только для строки

Я хочу создать шаблон отображения только для строковых свойств и использовать значение по умолчанию для всех остальных.

Я попытался создать 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" })

Он основан на шаблоне «по умолчанию» и работает для всех типов.

9
задан Goran Obradovic 13 June 2012 в 09:34
поделиться