2010-10-04 9 views
5

Ho scritto un paio di leganti modello personalizzato ora, e hanno capito che sono caduto nella trappola di affidarsi a corde magiche, ad esempio:Come posso rimuovere le stringhe magiche dai raccoglitori di modelli personalizzati?

if (bindingContext.ValueProvider.ContainsPrefix("PaymentKey")) 
    { 
     paymentKey = bindingContext.ValueProvider.GetValue("PaymentKey").AttemptedValue; 
    } 

mi piacerebbe essere in grado di utilizzare un espressione per digitare con forza i nomi dei prefissi, ma non riesco a capire come, e sarei grato per qualche aiuto.

Grazie.

+0

si potrebbe creare una classe statica per tenere quei valori di stringa come proprietà e fare riferimento le proprietà invece. Ad esempio: bindingContext.ValueProvider.ContainsPrefix (SomeClass.PaymentKey) –

risposta

1

Quello che state cercando è bindingContext.ModelName modo che il codice potrebbe diventare:

if (bindingContext.ValueProvider.ContainsPrefix(bindingContext.ModelName)) 
    { 
     paymentKey = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue; 
    } 
+0

Grazie per la risposta, ma no, questo non è quello che sto cercando. Forse la mia domanda avrebbe potuto essere più chiara, ma stavo cercando un modo per evitare l'uso di stringhe magiche per ogni proprietà, non il modello nel suo complesso. Grazie comunque. –

Problemi correlati