Атрибут DataType
в контексте ASP.NET MVC более или менее подсказывает, какой шаблон представления использовать для визуализации отображения и редактора для этого свойства.Как вы заметили, он предоставляет перечень поддерживаемых типов данных, для которых ASP.NET MVC внутренне предоставляет шаблоны редактора и отображения (MultilineText -> textarea html input), но он также может принимать строковый параметр с именем произвольного типа.Все, что он делает, это ищет представление с этим именем (предварительно определенное или нет) в Views/ControllerName/EditorTemplates/{DataTypeName}.cshtml
или Views/ControllerName/DisplayTemplates/{DataTypeName}.cshtml
, когда вы соответственно используете Editor / EditorFor или Display / DisplayFor (он также выполняет поиск в Views / Shared /...).Если он не подходит, он использует встроенный, если он доступен.
Эффект применения атрибута DataType
почти такой же, как при применении атрибута UIHint
, но он немногоболее явно.Например, я бы использовал DataType.Currency
для цены и UIHint для, скажем, пользовательского свойства модели пользовательского интерфейса ползунка.
Относительно проверки - встроенные шаблоны предоставляют ее, но если вы будете использоватьпользовательский тип данных в вашем шаблоне отображения / редактирования, который вы должны будете указать сами.