Rendre LabelFor sans balisage D'étiquette à partir de données de classe Annotation
j'ai le code suivant
<div class="editor-label">
@Html.LabelFor(model => model.subCategoryName)
</div>
qui rend html comme
<div class="editor-label">
<label for="subCategoryName">Sub-Category Name</label>
</div>
Comment faire pour rendre HTML propre sans le <label>
mais toujours obtenir la valeur des annotations de données ViewModel comme:
[Display(Name = "Sub-Category Name")]
public string subCategoryName { get; set; }
<div class="editor-label">
Sub-Category Name
</div
j'ai essayé à peu près toutes les méthodes pour @Html.XXXXXX (.DisplayTextFor,.DisplayNameFor, etc..), et encore ne peux pas obtenir que cela fonctionne.
3 réponses
je pense que la bonne solution dans ce cas est de ne pas utiliser LabelFor
mais pour utiliser la nouvelle méthode MVC 4 DisplayNameFor.
@Html.DisplayNameFor(model => model.subCategoryName)
j'ai remarqué que vous avez dit que ça ne marchait pas, mais ça semble bizarre. Voici un exemple sur ASP.Net -ajout D'un nouveau champ au modèle de film et à la Table avec exactement ce que vous essayez de faire.
constatations et correction: Après avoir beaucoup creusé, j'ai trouvé la solution. Mon DataAnnotation n'a pas été correctement mis en forme:
[Required]
[DisplayName("Sub-Category Name")]
public string subCategoryName { get; set; }
[Required]
[Display(Name = "Sub-Category Name")]
public string subCategoryName { get; set; }
2 - j'ai utilisé la suite de RASOIR code:
@Html.DisplayNameFor(model => model.subCategoryName)
ça marche maintenant!
[Mostly use in Display Name]
@Html.DisplayNameFor(model => model.UserName)
[Used for Label, Functionality of Label click on it then cursor point to related control]
@Html.LabelFor(m => m.UserName)
[Used for Textbox]
@Html.TextBoxFor(m => m.UserName)
[Used for Validation Message]
@Html.ValidationMessageFor(m => m.UserName)