2010-09-07 13 views
8

sto facendo int come questo:come mostrare del testo in html.LabelFor?

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

Ma iam ottenere non un valore che è in proprietà, ma qualcosa di strano in questo modo:

Hello User Name, 

Come può farlo per dare un certo valore in etichetta out ?

risposta

10

Il motivo per questo è perché Html.LabelFor farà proprio questo - creare un'etichetta per la proprietà. In questo caso, sta producendo un'etichetta di "Nome utente" poiché il nome della proprietà è UserName.

Hai solo bisogno di guardare il modello (o qualunque sia il vostro passaggio alla vista) per restituire il valore della proprietà: Html.Encode(Model.UserName)

Update (dato che questo era quasi 3 anni fa, ma le persone hanno di recente upvoted):

È possibile utilizzare solo <%: Model.UserName %> per ottenere il valore codificato HTML (<%= lo scrive come grezzo e <%: lo scrive codificato).

Se si utilizza un motore di visualizzazione Razor, quindi @Model.Username lo scriverà già codificato.

13

Aggiungi DataAnnotations al modello/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; } 
} 

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

Se non si fornisce un nome visualizzato dal DisplayAttribute poi Html.EditorFor(...) utilizza il nome proprietà, spliting su maiuscolo lettere:

NomeProprietà - testo> Etichetta
Email -> em ail
Indirizzo Email -> Indirizzo e-mail

Problemi correlati