Атрибут DataType имеет две цели
Предоставление дополнительной информации о типе для поля данных.Это делается путем применения атрибута DataTypeAttribute к полю данных в модели данных и путем указания имени дополнительного типа из перечисления DataType.Затем механизм просмотра использует шаблон по умолчанию для отображения свойства, например, флажок для логического значения. Если вы хотите переопределить шаблон по умолчанию и хотите использовать пользовательский шаблон, его можно использовать длясвяжите шаблон пользовательского поля с этим полем данных.В этом случае вы должны предоставить частичную страницу [.cshtml, MVC 4] для описания отображения.
Назначение UIHint точно такое же, как во втором пункте выше.Где использовать что?Ответ таков: контекст, т. Е. Что будет иметь больше смысла, что ближе к физической проблеме, которую пытается решить ваш код.Что делать, если оба применяются к одному и тому же свойству?Ответ: UIHint имеет приоритет, очевидно.Но почему вы примените оба?