Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 19676|Отговор: 2

[Бакшиши] MVC метаданни ViewData.ModelMetadata

[Копирай линк]
Публикувано в 28.06.2017 г. 21:12:49 ч. | | | |

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

ASP.NET MVC3.0 предоставя стандартните метаданни на модела, които DataAnnotationsModelMetadata наследява от ModelMetadata (освен това системата предоставя стандартния доставчик на метаданни за модела DataAnnotationsModelMetadataProvider)

публичен клас DataAnnotationsModelMetadata : ModelMetadata

Неговият конструктор е следният

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


Класът DataAnnotationsModelMetadata има няколко често използвани свойства

DisplayName display name, DisplayFormatString format string

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-filter

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

HttpGetAttribute, атрибут HttpPostAttribute, който ограничава оперативния метод само да обработва PUT заявки

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


Пример: ActionNameAttribute определя действителното име на действието, а употребата е следната

[ДействиеИме()]

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


Пример: Класът HiddenInputAttribute, който представлява свойство, което показва дали стойност на свойство или поле трябва да се рендерира като скрит входен елемент




Предишен:[A] MySql.Data.MySqlClient.MySqlConnection не може да бъде кастован към [B]MySql.Data.MySqlC...
Следващ:Неуловена TypeError: Не може да се зададе свойството 'ненатрапчиво' на неопределено
 Хазяин| Публикувано в 28.06.2017 г. 21:14:05 ч. |
 Хазяин| Публикувано в 1.12.2017 г. 16:53:12 ч. |


ViewData, за да получите кода на имота:

ViewDataDictionary viewData2=new ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com