2010-09-07 15 views
8

Bu şekilde int yapıyorum:html.LabelFor'da nasıl metin gösterilmeli?

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

Ancak, Mülkte olan bir değeri değil ama böyle garip bir şey alıyorum:

Hello User Name, 

Etiket dışında bir değer vermek nasıl yapılabilir?

cevap

10

Bunun nedeni, bunun için Html.LabelFor'un bunu yapmasıdır - mülk için bir etiket oluşturun. Bu durumda, özellik adı UserName olduğu için bir 'Kullanıcı Adı' etiketi üretmektedir. (Bu yaklaşık 3 yıl önce oldu ama insanlar son zamanlarda upvoted beri) Html.Encode(Model.UserName)

Güncelleme:

sadece özellik değerini döndürmek için modele bakmak gerekir (ya da her türlü görünümüne geçen)

HTML kodlanmış değerini almak için <%: Model.UserName %>'u kullanabilirsiniz (<%= işlenmemiş olarak yazıyor ve kodlanmış <%: yazıyor).

Eğer bir Razor görüntüleyici motoru kullanıyorsanız, o zaman @Model.Username önceden kodlanmış olarak yazacaktır.

13

modeliniz/ViewModel DataAnnotations ekleyin:

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; } 
} 

Kaynak: Eğer DisplayAttribute bir ekran adı girmezseniz http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=VS.95).aspx

sonra Html.EditorFor(...) harf üzerine çatlıyor, özellikleri adını kullanır harfler:

PropertyName -> Etiket metni
Eposta -> Em
E-posta Adresi -> E-posta Adresi

İlgili konular