2010-10-04 13 views
5

ich jetzt ein paar benutzerdefinierten Modell Binder geschrieben haben, und haben erkannt, dass ich habe, sich auf magische Saiten in die Falle getappt, zB:Wie kann ich magische Zeichenfolgen aus benutzerdefinierten Modellbindern entfernen?

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

Ich möchte in der Lage sein, ein zu verwenden, Ausdruck, um die Präfixnamen stark zu tippen, aber kann nicht herausfinden, wie, und würde für etwas Hilfe dankbar sein.

Danke.

+0

Sie könnten eine statische Klasse erstellen, diese String-Werte als Eigenschaften zu halten und die Eigenschaften stattdessen verweisen. Zum Beispiel: bindingContext.ValueProvider.ContainsPrefix (SomeClass.PaymentKey) –

Antwort

1

Was Sie suchen ist bindingContext.ModelName so könnte Ihr Code werden:

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

Danke für die Antwort, aber nein, das ist nicht, was ich suche. Vielleicht hätte meine Frage klarer sein können, aber ich suchte nach einer Möglichkeit, magische Zeichenfolgen für jede Eigenschaft zu vermeiden, nicht das Modell als Ganzes. Danke trotzdem. –

Verwandte Themen