2009-08-21 13 views
73

Html.LabelFor(c=>c.MyField) kullanılırken metnin nasıl belirtileceği konusunda herhangi bir fikir sahibi olur. Sadece MyField ekranda görüntülenmek için uygun bir isim olmayabilir, bunun yerine "Süper Fantastik Alan" isteyebilirsiniz, ancak herhangi bir aşırı yüklenme yok gibi görünüyor.Html.LabelFor Belirtilen Metin [ASP.NET MVC 2]

Herhangi bir fikrin var mı?

cevap

128

System.ComponentModel.DataAnnotations.DisplayAttribute:

[Display(Name = "My Field")] 
public string MyField { get; set; } 

bir kaynak dosyası kullanmanızı sağlayacak Ayrıntınız üzerinde ResourceType özelliğinin ayarlanması.

(görünen adı derleme zamanı sabiti olması gerektiği uyarısıyla birlikte 4 kullanılmasını System.ComponentModel.DisplayNameAttribute NET öncesinde.)

+0

Bunu yarın test edeceğim. – Kezzer

+9

Kazanan sensin. Yine de System.ComponentModel kullanarak '' olmalıdır. – Kezzer

+0

Kod jeneratörüm bunları otomatik olarak tükürdüm, Pascal-cased kelimeler arasında boşluklar ekliyorum. ÇALIŞIYOR bir cazibe gibi! – GalacticCowboy

0

Henüz CP1'i kontrol etmedim ama Scott'ın yayınlamasını okudum ve kodun T4 tarafından üretildiğini hatırlıyorum. Sanırım bunu her zaman modifiye edebilirsin ama CP2’de aşırı yüklenme sağlayacağından şüphelenebilirim.

Düzenleme: Kaynak her zaman kullanılabilir durumdadır ve böylece yöntemi modifiye edebilir, T4 üretecini değiştirebilir ve gitmek iyi olacaksınız. Ayrıca bu mod için bir bilet veya istek (bir şekilde) koymak, böylece sonraki sürümde çalışır.

+0

Utanç, bir iş önizleme yapıyorum ama alan adlarımız açıklama muhataplarına göre oldukça bozuk olduğundan gerçek anlamda uygun değil. – Kezzer

3

ben v2 indirmediyseniz henüz, bu yüzden test edemez, ama bu durumda size modeline böyle bir şey yaparım, DynamicData gibi çalışır inanıyorum: Eğer kullanmak

[Display(Name = "The Super Fantastic Field")] 
public string MyField {get;set;} 
+0

Ekran mevcut değil ve intellisense herhangi bir libda bulamıyor. – Kezzer

+0

System.ComponentModel.DataAnnotations.dll dosyasına başvuru ekleyin ve System.ComponentModel.DataAnnotations kullanarak ekleyin. – Daniel

+0

Bunun yerine, GAC'den System.ComponentModel.DataAnnotations öğesine başvuru ekleyin (ör., Referansların eklenmesiyle ilgili .NET sekmesinde) – Daniel

26

MVC 3 yeni aşırı yük böylece için özel testini specifiy gerekir yoktur labelfor yardımcısı.

+8

@ Html.LabelFor (model => model.IdCode, "Kolay Ad") –

40

Kolay çözüm sadece görünümünde aşağıdakileri ekleyin:

@Html.LabelFor(c=>c.MyField, "My Field") 
0

5 aşırı yükler vardır. Birkaç "Süper Fantastik Tarla" olarak ayarlayacağınız "string labelText" in ikinci parametresini sunar.

0

iki yolu
1 "doğrudan ek açıklamalar"
2 "Annotatinos bir kaynakla"
Doğrudan ek açıklamalar

[Display(Name = "My_Field",ResourceType = typeof(Resource))] 
public string MyField { get; set; } 

İkinci yolu eklemek gerekecektir bir kaynakla

[Display(Name = "My Field")] 
public string MyField { get; set; } 

Annotatinos vardır Kaynak dosyasındaki bir değer, muhtemelen Resource.resx olarak adlandırılır.
Amacınıza uygun olanı kullanın.