Что делает атрибут EnumDataType в ASP.NET MVC?
я использую string
свойства некоторых объектов моей модели для представления перечислений. Я использую только строки, потому что в коде Entity Framework еще нет поддержки перечисления. Во всяком случае, я заметил, что в System.ComponentModel.DataAnnotations
под названием EnumDataType
. Я попытался установить этот атрибут, но он, похоже, ни на что не влияет.
Я должен упомянуть, что моя конечная цель-иметь соответствующий раскрывающийся список для любого типа перечисления в представлении "создать" или "редактировать". Я думал может быть!--2--> облегчило бы это в сценарии авто-лесов, но я не уверен, что это так.
три вопроса:
- тут
EnumDataType
имейте цель внутри ASP.NET MVC? - если да, то что он делает?
- мне нужно, чтобы мои свойства модели были
int
(вместоstring
) воспользоватьсяEnumDataType
?
4 ответов
EnumDataType
в настоящее время поддерживается только ASP.NET сайты динамических данных (в .NET 4.0). Обычно вы можете создать свой собственный HTML-помощник, который будет проверять свойство, содержит ли оно атрибут (по отражению) и создает для него раскрывающийся список со значениями из связанного перечисления.
лучшим решением, которое я нашел для этого, было объединение этот блог С ответ. Это делает и представление и модель очень читабельными и ремонтопригодными.
посмотреть мои ответ тут.
модель:
public enum YesPartialNoEnum
{
[Description("Yes definitely")]
Yes,
[Description("No way!")]
No
}
//........
[Display(Name = "The label for my dropdown list")]
public virtual Nullable<YesPartialNoEnum> CuriousQuestion{ get; set; }
//........
вид:
@Html.ValidationMessageFor(model => model.CuriousQuestion)
либо MVC3, либо EF4.1 CodeFirst появляется для проверки свойств с помощью этого атрибута. Удобно из-за отсутствия поддержки перечисления в EF в настоящее время, то есть вы можете поместить атрибут в целочисленное свойство.