Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 19676|Ответ: 2

[Чаевые] Метаданные MVC Metamodel ViewData.ModelMetadata

[Скопировать ссылку]
Опубликовано 28.06.2017 21:12:49 | | | |

ModelMetaData — важная концепция в MVC, включая, но не ограничиваясь, типом модели, атрибутами, которые она содержит, типами атрибутов и характеристиками атрибутов.

ASP.NET MVC3.0 предоставляет стандартные метаданные модели, которые DataAnnotationsModelMetadata унаследовывает от ModelMetadata (кроме того, система предоставляет стандартный поставщик метаданных модели DataAnnotationsModelMetadataProvider)

public class DataAnnotationsModelMetadata : ModelMetadata

Его конструктор следующий

public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);


Класс DataAnnotationsModelMetadata обладает несколькими часто используемыми свойствами

DisplayName display name, строка формата DisplayFormatString

TemplateHint получает значение для выбора шаблона


Для DisplayName метод LabelFor<TModel, TValue> использует это свойство для генерации текста меток.  Это значитКогда свойство DispalyName определено на нашей модели, используйте метод html.editForModel() в видеОн автоматически отображает метку " <label for="username" > имя </ для этого атрибута</label> модели.

  

[display( name="name", order=2)] атрибут //order меняет порядок страницы html
  public string username { get; декорация; }




Исходный код HTML:




Свойство Display, используемое в атрибуте имени пользователя, — это класс System.ComponentModel.DataAnnotations.DisplayAttribute, который предоставляет универсальную функцию, позволяющую задавать локализируемые строки для типа и члена класса деления сущности


Также есть функции из System.Web.MVC и System.ComponentModel.DataAnnotations, названия которых — классы признаков, похожие на XXXXAttribute, и все они имеют определённые сферы использования, некоторые ограничивают свойства модели, некоторые ограничивают Contrller, некоторые ограничивают действия и т.д.


Ниже приведён список встроенных и часто используемых классов признаков в этих двух пространствах имён

1) Пространство System.Web.MVC

AcceptVerbsAttribute,ActionFilterAttribute,ActionNameAttribute,AsyncTimeoutAttribute,AuthorizeAttribute,BindAttribute,

HiddenInputAttribute

ActionFilterAttribute представляет базовый класс всех свойств action-фильтра

Класс HttpDeleteAttribute, который представляет собой свойство, используемое для ограничения метода операции так, чтобы метод обрабатывал только запросы HTTP DELETE

HttpGetAttribute — атрибут HttpPostAttribute, который ограничивает метод операции только обработкой запросов PUT

HttpPutAttribute представляет собой свойство, используемое для ограничения метода операций так, чтобы он обрабатывал только запросы HTTP PUT.


Пример: ActionNameAttribute указывает фактическое имя действия действия, и его использование следующее

[ActionName()]

публичный индекс результатов действий()


Пример: класс HiddenInputAttribute, который представляет свойство, указывающее, должно ли значение свойства или поле отображаться как скрытый входный элемент




Предыдущий:[A] MySql.Data.MySqlClient.MySqlConnection не может быть кастом в [B]MySql.Data.MySqlC...
Следующий:Незафиксированный типОшибка: Нельзя установить свойство 'ненавязчивое' для неопределенного
 Хозяин| Опубликовано 28.06.2017 21:14:05 |
ModelMetadata



 Хозяин| Опубликовано 01.12.2017 16:53:12 |


Просмотр данных для получения кода свойства:

ViewDataDictionary viewData2=new ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com