Вам необходимо создать свой собственный ModelMetadataProvider. Вот пример использования DataAnnotationsModelBinder
public class MyMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(Collections.Generic.IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
var _default = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
_default.IsRequired = attributes.Where(x => x is RequiredAttribute).Count() > 0;
return _default;
}
}
Затем в вашем AppStartup в Global.asax вы захотите добавить следующее, чтобы подключить MyMetadataProvider в качестве поставщика метаданных по умолчанию:
ModelMetadataProviders.Current = new MyMetadataProvider();