2010-09-07 10 views
8

robie int tak:jak wyświetlić tekst w html.LabelFor?

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

Ale IAM nie uzyskiwanie wartość, która znajduje się w miejscu, ale coś dziwnego takiego:

Hello User Name, 

W jaki sposób można to zrobić, aby dać pewną wartość w etykiecie out ?

Odpowiedz

10

Przyczyną jest to, że zrobi to tylko Html.LabelFor - utwórz etykietę nieruchomości. W tym przypadku tworzy etykietę "Nazwa użytkownika", ponieważ nazwa właściwości to NazwaUżytkownika.

Wystarczy spojrzeć na model (lub bez względu na przejście do widoku), aby zwrócić wartość właściwość: Html.Encode(Model.UserName)

Update (ponieważ to było prawie 3 lata temu, ale osoby, które niedawno upvoted):

można po prostu użyć <%: Model.UserName %> uzyskać HTML zakodowaną wartość (<%= zapisuje go jako surowy i <%: pisze to zakodowane).

Jeśli używasz maszynki Razor, to @Model.Username zapisze to już zakodowane.

13

Dodaj DataAnnotations do modelu/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; } 
} 

Źródło: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=VS.95).aspx

Jeśli nie podać nazwę wyświetlaną przez DisplayAttribute następnie Html.EditorFor(...) używa nazwy właściwości, spliting go na wielkie litery litery:

PropertyName - tekst> Label
Email -> Em ail
Adres e-mail -> Adres e-mail

Powiązane problemy