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.

18
demandé sur Erik Philips 2012-08-30 22:52:57

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.

26
répondu Erik Philips 2012-08-30 21:16:41

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!

5
répondu Ravi Ram 2012-08-31 03:10:12
[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)
2
répondu Yasir Mughal 2013-08-28 15:53:13