2013-03-14 6 views
7

Devo dichiarare molte proprietà di un modello che hanno tutti gli stessi attributi. Mi stavo chiedendo se ci fosse un modo per farlo in MVC.MVC: esiste un modo per dichiarare più proprietà in un modello con gli stessi attributi, nomi diversi

[Required] 
[Range(0, 4, ErrorMessage = "Integrity is required.")] 
public int Integrity { get; set; } 

[Required] 
[Range(0, 4, ErrorMessage = "Empathy is required.")] 
public int Empathy { get; set; } 

Ho un sacco di campi che utilizzano tali attributi (2 richiesto e gamma), L'unica cosa diversa è il nome della proprietà. C'è un modo per dichiararli in un modo che comporta meno ripetizioni?

+0

È possibile creare l'Attributo personalizzato utilizzando la classe ValidationAttribute e sovrascrivere il metodo IsValid(). e qui puoi scrivere tutta la logica necessaria per questo. –

risposta

1

Non esiste alcuna funzionalità integrata per i requisiti, tuttavia è possibile ottenere questa funzionalità utilizzando ModelValidatorProviders. Devi creare il tuo provider e passarlo a MVC. Crea il tuo attributo che accetterà il tipo di annotazione e l'array di proprietà a cui dovrebbe essere applicato. e quindi è possibile scrivere la logica richiesta all'interno di tale attributo di conseguenza. Date un'occhiata a questo link sarà sicuramente darà suggerimento su come ottenere questo fatto ..

CustomModelValidatorProvider

Problemi correlati