Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19676|Odpověď: 2

[Tipy] MVC metamodel metadata ViewData.ModelMetadata

[Kopírovat odkaz]
Zveřejněno 28.06.2017 21:12:49 | | | |

ModelMetaData je důležitý pojem v MVC, včetně, ale nejen, typu modelu, jaké atributy model obsahuje, jaké typy atributů se vyskytují a jaké charakteristiky jsou na atributech.

ASP.NET MVC3.0 poskytuje výchozí metadata modelu, DataAnnotationsModelMetadata dědí z ModelMetadata (navíc systém poskytuje výchozího poskytovatele metadat modelu DataAnnotationsModelMetadataProvider)

public class DataAnnotationsModelMetadata : ModelMetadata

Jeho konstruktor je následující

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


Třída DataAnnotationsModelMetadata má několik běžně používaných vlastností

DisplayName zobrazení, formátový řetězec DisplayFormatString

TemplateHint získá hodnotu, kterou si vybere, kterou šablonu použít


Pro DisplayName používá metoda LabelFor<TModel, TValue> tuto vlastnost k generování textu štítku.  Znamená toJakmile je vlastnost DispalyName definována v našem modelu, použijte metodu html.editForModel() v režimu viewAutomaticky zobrazí štítek "<label for="username" > název </ pro tento atribut</label> modelu.

  

[display( name="name",order=2)] //atribut order mění pořadí HTML stránky
  public string username { get; set; }




Zdrojový kód HTML:




Vlastnost Display používaná v atributu username je třída System.ComponentModel.DataAnnotations.DisplayAtribut, která poskytuje obecnou funkci umožňující zadat lokalizovatelné řetězce pro typ a člena třídy entity division class


Jsou zde také funkce ze System.Web.MVC a System.ComponentModel.DataAnnotations, jejichž názvy jsou všechny třídy funkcí podobné XXXXAttribute, všechny mají specifické rozsahy použití, některé omezují vlastnosti modelu, některé omezují Contrller, některé Actions atd.


Následuje seznam vestavěných a běžně používaných tříd rysů v těchto dvou jmenných prostorech

1) Prostor System.Web.MVC

PřijmoutVerbsAttribute, ActionFilterAttribute, ActionNameAttribute, AsyncTimeoutAttribute, AuthorizeAttribute, BindAttribute,

HiddenInputAttribute

ActionFilterAttribute představuje základní třídu všech vlastností akčního filtru

Třída HttpDeleteAttribute představuje vlastnost používanou k omezení operační metody tak, aby metoda zpracovávala pouze HTTP DELETE požadavky

HttpGetAttribute, atribut HttpPostAtribut, který omezuje operační metodu pouze na zpracování PUT požadavků

HttpPutAttribute představuje vlastnost, která se používá k omezení operační metody tak, aby metoda zpracovávala pouze HTTP PUT požadavky.


Příklad: ActionNameAttribute specifikuje skutečný název akce a jeho použití je následující

[ActionName()]

veřejný ActionResult Index()


Příklad: třída HiddenInputAttribute (Skrytý vstupní atribut), která představuje vlastnost určující, zda by měla být hodnota vlastnosti nebo pole zobrazena jako skrytý vstupní prvek




Předchozí:[A] MySql.Data.MySqlClient.MySqlConnection nelze přenést na [B]MySql.Data.MySqlC...
Další:Uncaught TypeError: Nelze nastavit vlastnost 'nerušivá' nebo nedefinované
 Pronajímatel| Zveřejněno 28.06.2017 21:14:05 |
 Pronajímatel| Zveřejněno 01.12.2017 16:53:12 |


ViewData pro získání kódu nemovitosti:

ViewDataDictionary viewData2=nový ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com