2010-09-07 6 views
8

que je fais int comme ceci:comment afficher du texte dans html.LabelFor?

Hello <%= Html.LabelFor(user => user.UserName)%> 

Mais iam obtenir pas une valeur qui est dans la propriété, mais quelque chose d'étrange comme ceci:

Hello User Name, 

Comment faire pour donner une certaine valeur dans ImprimEtiq ?

Répondre

10

La raison en est que Html.LabelFor fera exactement cela - créer une étiquette pour la propriété. Dans ce cas, il produit un libellé "Nom d'utilisateur" car le nom de la propriété est NomUtilisateur.

Vous avez juste besoin de regarder le modèle (ou quel que soit votre passage à la vue) pour renvoyer la valeur de la propriété: Html.Encode(Model.UserName)

Mise à jour (puisque c'était il y a près de 3 ans, mais les gens ont récemment upvoted):

Vous pouvez simplement utiliser <%: Model.UserName %> pour obtenir la valeur codée HTML (<%= écrit comme brut et <%: écrit il codé).

Si vous utilisez un moteur de vue Razor, alors @Model.Username l'écrira déjà encodé.

13

Ajouter DataAnnotations à votre modèle/viewmodel:

public class Customer 
{ 
    [Display(Name = "Email Address", Description = "An email address is needed to provide notifications about the order.")] 
    public string EmailAddress { get; set; } 

    [Display(ResourceType=typeof(DisplayResources), Name="LName", Description="LNameDescription")] 
    public string LastName { get; set; } 
} 

Source: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=VS.95).aspx

Si vous ne fournissez pas un nom d'affichage par le DisplayAttribute puis Html.EditorFor(...) utilise le nom de propriétés, spliting sur majuscules lettres:

Nom de propriété -> Texte de l'étiquette
Email -> Em
EmailAdresse -> Adresse e-mail

Questions connexes