ASP.NET MVC / LINQ to SQL Classes: Puis-je obtenir de déduire les noms d'affichage lisibles?
-
22-09-2019 - |
Question
Si j'ai un Orders
de table avec des champs CustomerID
, OrderID
et OrderDate
, puis les "classes LINQ to SQL" classe générée seront appelés Orders
, avec les membres appelés CustomerID
, OrderID
et OrderDate
. Jusqu'à présent, si bon.
Cependant, si je puis faire Html.LabelFor(m => m.OrderDate)
alors le texte généré sera « OrderDate » au lieu de « date de commande ».
J'ai essayé d'utiliser Order_Date
comme nom de domaine, mais cela ne fonctionne pas. Est-il possible de l'obtenir à un meilleur nom infère d'affichage?
[Je sais que je peux utiliser les annotations de données pour spécifier le nom d'affichage explicitement, mais je ne veux vraiment pas faire cela pour toutes mes classes / membres -. Je veux juste que cela fonctionne par convention]
La solution
Cette méthode profite de l'architecture existante MVC 2 aux conventions de place sur l'ensemble * Pour le rendu des méthodes au lieu d'un arrêt des aides HTML et sans avoir à ré-étiqueter tout avec les noms de propriétés espacés.
Comment « tarir "C # attributs dans les modèles et ViewModels
Pour l'essentiel ce que vous faites est prépondérant le comportement de ConventionModelMetadataProvider par défaut de MVC 2 et en fournissant des crochets pour vous d'insérer vos propres conventions opiniâtre.
Autres conseils
Je vous suggère de créer votre propre HTML Helper pour cela, quelque chose comme Html.MyLabelFor
.
Les règles applicables d'ici sont à vous. Vous pouvez simplement diviser le mot par cas.
Il y a une solution disponible pour vos besoins contenus dans la réponse à cette question. .