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 Field { get; set; }
I see others using UiHint to achieve the same results
[UiHint("DropDown")] public int Field { get; set; }
What is the difference between using these two attributes? Which attribute should I be normally using, or are they for different tasks?
DataType is generally used to make it known that this is a very specific version of a property, such as price.
The most common example of DataType is the [DataType(DataTypes.EmailAddress)]
which usually is a string but we're saying that this is a very specific type of string.
They're both helpful and the UIHint overrides the DataType. So if you have a certain DataType but you want to override the editor for that specific property you can use a UIHint.
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?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With