ASP.NET MVC / LINQ to SQL Classes: Puis-je obtenir de déduire les noms d'affichage lisibles?

StackOverflow https://stackoverflow.com/questions/2538187

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]

Était-ce utile?

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. .

scroll top