После некоторых поисковых запросов, похоже, этот атрибут недоступен в MVC 6. Вы можете использовать его в полном DNX, но он недоступен в DNX Core.
Конечно, вы можете украсить свой код с
#if DNXCORE50
...
#endif
так, что вы не получите никаких ошибок при компиляции для полного DNX, но это выглядит как атрибут не делать то, что он, как ожидается. Например, DisplayName(Name = "...")
не работает (я не проверял другие параметры, такие как Required
и т. Д.).
IMHO, Fluent MetadataProvider может быть решением этого вопроса, только я не знаю, был ли он перенесен на vNext. Я свяжусь с автором (ами), и если они не смогут скоро его портировать, я его разблокирую и попытаюсь перенести его сам.
EDIT:ModelMetadataType
заменяет MetadataType
. Вы должны указать Microsoft.AspNet.Mvc.Core. Я не совсем уверен, но, возможно, вам понадобится Microsoft.AspNet.Mvc.DataAnnotations тоже.
В любом случае, мои мысли о специальных аннотациях данных (Fluent MetadataProvider) по-прежнему актуальны. Вам также может понадобиться прочитать интересную статью об этом: Why You Don't Need ModelMetadata.Attributes от Brad Wilson.
Как ModelMetaDataType заменить MetaDataType? Один из них специфичен для MVC, а это не так? Они даже не в одном пространстве имен. –
@Erik Philips: Вы правы - MetadataTypeAttribute находится в System.ComponentModel.DataAnnotations, а ModelMetadataTypeAttribute - в Microsoft.AspNet.Mvc. И что? Мы говорим о разных атрибутах, имеющих одинаковое влияние. Пожалуйста, внимательно прочитайте вопрос. И, да, второй заменяет первое, в отношении описания метаданных. Попробуйте то, что я описал, и вы увидите разницу. –
Я думаю, это зависит от использования. Использует ли он его для поставщика метаданных или для проверки. –