Dans ASP.NET MVC, comment afficher un nom de propriété en tant que division d'étiquettes sur CamelCase
Je sais que j'ai déjà vu cela. Je ne me souviens pas si c'était un C4MVC modèle de démonstration ou d'une entrée du générateur de chose! J'ai besoin de savoir comment je peux utiliser la convention de CamelCasing mon point de vue, les propriétés du modèle et de devoir le "CamelCasedProperty" rendu sur l'étiquette comme "Camelcase Propriété". Cela devrait être géré par l'assistant d'affichage plutôt que par programmation de la manipulation de ce.
source d'informationauteur Andrew Siemer
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que ce que vous voulez, c'est possible à la vanille ASP.NET MVC 2.
Dans ASP.NET MVC 2 vous avez besoin pour décorer votre modèle avec un attribut DisplayName avec le texte que vous voulez et puis la génération automatique d'assistant d'utiliser
LabelFor
à la sortie de l'étiquette de la propriété. Par exemple:Puis dans la vue:
Si vous avez vu une démo de la faire d'une autre manière qu'il pourrait avoir été de la MvcContrib projet pour InputBuilders.
Voici le lien direct pour la partie du projet, je pense que votre référence:
http://www.lostechies.com/blogs/hex/archive/2009/06/09/opinionated-input-builders-for-asp-net-mvc-part-2-html-layout-for-the-label.aspx
Après quelques farfouillé, j'ai trouvé un plomb ce que j'ai envie de faire. En regardant cette C4MVC vidéo. Je suis sûr que cela pourrait déjà être achevé en MVC Contrib en entrée du générateur. Cependant, je suis très intéressé par la compréhension de tous les sous pinnings pour ainsi dire d'apprendre tout ce que je peux pour mon livre à venir "ASP.NET MVC livre de cuisine" (shameless plug pour examen public). Voici la solution que j'ai trouvé qui a besoin de moi pour renommer le Html.LabelFor Html.LabelFor2 dans le code généré par le formulaire "créer un nouveau point de vue":
J'ai créé une méthode pour obtenir la propriété nom de l'adopté en lambda. Ensuite, j'ai créé une autre méthode permettant d'analyser le nom de la propriété sur les majuscules des lettres contenues dans le nom.
J'ai ensuite étendu Html pour avoir un LabelFor2 méthode qui construit et transmet le format d'affichage du nom d'une propriété.
J'ai une simplification de la nouvelle version de créer un Titre-isée étiquette d'Andrews réponse, à l'aide de la MVC2 code pour le respect de la [DisplayName(...)] attributs
à l'aide de https://github.com/srkirkland/Inflector/blob/master/Inflector/Inflector.cs
Expansion sur Jason Plus de réponsevoici un avec les surcharges pour les attributs HTML.
Le MIT sous licence
Inflector
package NuGet est nécessaire:Install-Package Inflector
.Exemple d'utilisation:
Ce code est Unlicense licence (libre d'utilisation et de changement dans un contexte sans attribution).