Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 19676|Відповідь: 2

[Чайови] Метадані метамоделі MVC 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 " <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 представляє базовий клас усіх властивостей дії-фільтра

Клас HttpDeleteAttribute, який представляє властивість, що використовується для обмеження операційного методу так, щоб метод обробляв лише запити HTTP DELETE

HttpGetAttribute — атрибут HttpPostAttribute, який обмежує операційний метод обробкою лише PUT запитів

HttpPutAttribute — це властивість, яка використовується для обмеження операційного методу так, щоб метод обробляв лише HTTP PUT запити.


Приклад: ActionNameAttribute вказує фактичну назву дії дії, і її використання таке

[ActionName()]

Публічний індекс результатів дій()


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




Попередній:[A] MySql.Data.MySqlClient.MySqlConnection не може бути транслюваний у [B]MySql.Data.MySqlC...
Наступний:Невиявлена TypeError: Не можна встановити властивість 'непомітна' для невизначеного
 Орендодавець| Опубліковано 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