2010-09-08 13 views
0

J'utilise le MS livré validation côté client dans asp.net mvc 2. Le modèle en question a une propriété appelée « FirstName ». Notre développeur côté client comme vraiment avoir chameau dans le cas id éléments, donc au lieu d'utiliser l'aide html normale Html.TextBoxFor(m => m.FirstName), nous avons écrit à la vue d'entrée html au lieu comme: <input type="text" id="firstName" name="firstName" />. Le classeur modèle peut lier correctement et obtenir la bonne valeur (je suppose que ce n'était pas sensible à la casse, ce qui est une bonne chose). Cependant, lorsque l'on sur l'évaluation côté client et de délivrer une Html.ValidateFor(m => m.FirstName) à la fin, il génère toujours le format Pascal cas de la propriété (qui est prévu).validation côté client asp.net mvc pour le nom de la propriété de cas de chameau

Je regarde dans le code source mvc 2 reveils que ValidateFor() appelle ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData) qui à son tour utilise MemberExpression pour obtenir le nom de la propriété (qui est pascal cas). Je me demande s'il y a moyen de contourner cela? Le but ultime est de faire en sorte que l'ID de chameau soit les éléments du code html et que la validation côté client et côté serveur fonctionne toujours.

Toute aide est appréciée.

Répondre

0

Mon $ 0,02: Choisissez un boîtier et associez le modèle de vue à la page. Les deux C# et JS sont sensibles à la casse, et tenter de mélanger les cas ne se terminera pas bien. L'un d'entre vous devra changer de cas. Vous pourriez probablement contourner ce problème spécifique, mais ce ne sera pas la fin de vos problèmes.