给你个方案参考:重写一个ModelMetadataProvider,具体如下
public class CustomMetadataProvider : DataAnnotationsModelMetadataProvider{ protected override ModelMetadata CreateMetadata(IEnumerable attributes, Type containerType, Func modelAccessor, Type modelType, string propertyName) { var metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName); if (modelType == typeof(ENUM)) { metadata.Model = ((int)((ENUM)metadata.Model)).ToString(); } return metadata; }}
protected void Application_Start(){ AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
ModelMetadataProviders.Current = new CustomMetadataProvider();}
英文版中第427页开始关于Model Metadata的相关内容