2010-10-04 9 views
5

Pisałem parę niestandardowych modeli spoiw teraz, i zdać sobie sprawę, że już wpadły w pułapkę polegać na magicznych ciągów, npJak usunąć magiczne ciągi z niestandardowych segregatorów?

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

Chciałbym, aby móc użyć wyrażenie, aby silnie wpisać nazwy prefiksów, ale nie może dowiedzieć się, jak i byłby wdzięczny za jakąś pomoc.

Dzięki.

+0

Można by utworzyć statyczną klasę do posiadania tych wartości ciągów jak właściwości i odniesienie do właściwości zamiast. Na przykład: bindingContext.ValueProvider.ContainsPrefix (SomeClass.PaymentKey) –

Odpowiedz

1

Co szukasz jest bindingContext.ModelName więc kod może stać:

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

Dzięki za odpowiedź, ale nie, to nie jest to, czego szukam. Może moje pytanie mogło być bardziej przejrzyste, ale szukałem sposobu na uniknięcie stosowania magicznych ciągów dla każdej nieruchomości, a nie modelu jako całości. Dzięki i tak. –