Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 20136|Yanıt: 2

[İpucu] MVC metamodel metadata ViewData.ModelMetadata

[Bağlantıyı kopyala]
Yayınlandı 28.06.2017 21:12:49 | | | |

ModelMetaData, MVC'de önemli bir kavramdır; model türü, modelin hangi özellikler içerdiği, hangi tür nitelikler ve niteliklerde hangi özellikler olduğu dahil ancak bunlarla sınırlı olmamak üzere önemlidir.

ASP.NET MVC3.0, varsayılan model metaverisini sağlar DataAnnotationsModelMetadata, ModelMetadata'dan miras alır (ayrıca sistem, varsayılan model metaveri sağlayıcısı DataAnnotationsModelMetadataProvider'i sağlar)

public class DataAnnotationsModelMetadata : ModelMetadata

Yapıcısı şöyledir

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


DataAnnotationsModelMetadata sınıfının yaygın olarak kullanılan birkaç özelliği vardır

DisplayName gösterim adı, DisplayFormatString format dizisi

TemplateHint, hangi şablonu kullanacağını seçmek için bir değer alır


DisplayName için, LabelFor<TModel, TValue> yöntemi bu özelliği etiket metni oluşturmak için kullanır.  DemekDispalyName özelliği modelimizde tanımlandıktan sonra, görünüşte html.editForModel() yöntemini kullanınBu modelin bu özniteliği için otomatik olarak "<label for="username" > name </ etiketi gösterilir</label>.

  

[display( name="name",order=2)] //order özniteliği html sayfasının sırasını değiştirir
  public string username { get; set; }




HTML kaynak kodu:




Kullanıcı adı özniteliğinde kullanılan Display özelliği, System.ComponentModel.DataAnnotations.DisplayAttribute sınıfıdır; bu sınıf, varlık bölme sınıfının türü ve üyesi için yerelleştirilebilir dizileri belirtmenize olanak tanıyan genel bir özellik sunar


Ayrıca System.Web.MVC ve System.ComponentModel.DataAnnotations gibi özellikler de vardır; bunların isimleri XXXXAttribute'a benzer özellik sınıflarıdır ve hepsinin belirli kullanım alanları vardır, bazıları model özelliklerini kısıtlar, bazıları Contrller'ı kısıtlar, bazıları Eylemleri kısıtlar vb.


Aşağıda, bu iki isim alanında yerleşik ve yaygın olarak kullanılan özellik sınıflarının bir listesi yer almaktadır

1) System.Web.MVC alanı

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

HiddenInputAttribute

ActionFilterAttribute, tüm eylem filtresi özelliklerinin temel sınıfını temsil eder

HttpDeleteAttribute sınıfı, işlem yöntemini kısıtlamak için kullanılan bir özelliği temsil eder; böylece yöntem yalnızca HTTP DELETE isteklerini işlerken

HttpGetAttribute, işlem yöntemini yalnızca PUT isteklerini işleyecek şekilde sınırlayan bir HttpPostAttribute özniteliğidir

HttpPutAttribute, işlem yöntemini kısıtlamak için kullanılan bir özelliği temsil eder; böylece yöntem yalnızca HTTP PUT isteklerini işliyor.


Örnek: ActionNameAttribute, eylemin gerçek eylem adını belirtir ve kullanım şekli şöyledir

[EylemName()]

public ActionResult Index()


Örnek: HiddenInputAttribute sınıfı, bir özellik değerinin veya alan değerinin gizli giriş öğesi olarak mı işlenilmesi gerektiğini gösteren bir özelliği temsil eder




Önceki:[A] MySql.Data.MySqlClient.MySqlConnection [B]MySql.Data.MySqlC...
Önümüzdeki:Yakalanmamış TypeError: Tanımlanmamış özelliği 'göze ilmez' olarak ayarlanamıyor
 Ev sahibi| Yayınlandı 28.06.2017 21:14:05 |
ModelMetadata



 Ev sahibi| Yayınlandı 1.12.2017 16:53:12 |


Özellik kodunu almak için ViewData:

ViewDataDictionary viewData2=yeni ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com