2011-09-05 12 views

cevap

15

[Required] gibi yerleşik öznitelikler meta verilerde farklı özellikler atar (daha fazla bilgi edinmek için yanıtımın sonunda bağlandığım blog gönderisine bakın). Örneğin:

public class MyViewModel 
{ 
    [Required] 
    public string Foo { get; set; } 
} 

atamak:

@{ 
    var isRequired = ViewData.ModelMetadata.IsRequired; 
} 

ilgili düzenleyici/gösterge şablonunda.

Ve özel bir özellik olsaydı:

public class MyCustomStuffAttribute : Attribute, IMetadataAware 
{ 
    public void OnMetadataCreated(ModelMetadata metadata) 
    { 
     metadata.AdditionalValues["customStuff"] = "some very custom stuff"; 
    } 
} 

ve onunla süslenmiş bir görünüm modeli:

@{ 
    var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"]; 
} 
: İlgili editör/ekran şablonunda

public class MyViewModel 
{ 
    [MyCustomStuff] 
    public string Foo { get; set; } 
} 

bu alamadan

Ayrıca kesinlikle Brad Wilson'ın series of blog posts'u mutlaka okumanız gerekir. ModelMetadata'da ve ASP.NET MVC'deki şablonlar nasıl kullanılır.