I have been using mvc2 for a while now, and when i need to set the template i use the DataType Attribute
[DataType(\"DropDown\")] public int
DataType attribute has two purposes
The purpose of UIHint is exactly same as the second point above. Where to use what? The answer is: context, ie., what will make more sense, what is closer to the physical problem your code is trying to solve. What if both are applied to the same property? The answer is: UIHint has precedence, obviously. But why would you apply both?