2011-09-05 8 views

risposta

15

Gli attributi incorporati, ad esempio [Required], assegnano proprietà diverse ai metadati (vedere il post del blog che ho collegato alla fine della risposta per ulteriori informazioni). Ad esempio:

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

assegnerebbe:

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

nel modello editore/display corrispondente.

E se si ha un attributo personalizzato:

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

e un modello vista decorato con esso:

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

nel modello relativo editor di/display si potrebbe prendere questo:

@{ 
    var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"]; 
} 

Inoltre dovresti assolutamente leggere il series of blog posts di Brad Wilson su wh a ModelMetadata e modelli in ASP.NET MVC è e come usarlo.

Problemi correlati