2010-10-04 10 views
5

J'ai écrit deux classeurs de modèles personnalisés maintenant et ont réalisé que je suis tombé dans le piège de se fonder sur des chaînes magiques, par exemple:Comment puis-je supprimer des chaînes magiques des classeurs personnalisés?

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

Je voudrais être en mesure d'utiliser un expression pour taper fortement les noms des préfixes, mais ne peut pas comprendre comment, et serait reconnaissant pour de l'aide.

Merci.

+0

Vous pouvez créer une classe statique pour contenir les valeurs de chaîne en tant que propriétés et référencer les propriétés à la place. Par exemple: bindingContext.ValueProvider.ContainsPrefix (SomeClass.PaymentKey) –

Répondre

1

Ce que vous cherchez est bindingContext.ModelName si votre code pourrait devenir:

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

Merci pour la réponse, mais non, ce n'est pas ce que je recherche. Peut-être que ma question aurait pu être plus claire, mais je cherchais un moyen d'éviter d'utiliser des chaînes magiques pour chaque propriété, pas le modèle dans son ensemble. Merci quand même. –