Każdy ma pomysł, jak określić tekst podczas używania Html.LabelFor(c=>c.MyField)
. To poprostuMyField
może nie być odpowiednia nazwa do wyświetlenia na ekranie, możesz zamiast tego chcieć „The Super Fantastic Field”, ale nie ma żadnych przeciążeń.
Jakieś pomysły?
c#
asp.net-mvc
razor
Kezzer
źródło
źródło
using System.ComponentModel;
.Error 381 An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
. Więc to rozwiązanie wydaje się być złe dla l18n.System.ComponentModel.DataAnnotations.DisplayAttribute
która pozwala na użycie pliku zasobów. Jeśli nie masz jeszcze 4 / 4,5, starySystem.ComponentModel.DisplayNameAttribute
może zostać przedłużony w następujący sposób: stackoverflow.com/a/2432520/33533Proste rozwiązanie po prostu dodaj w widoku:
@Html.LabelFor(c=>c.MyField, "My Field")
źródło
W MVC 3 pojawiło się nowe przeciążenie, więc powinieneś być w stanie określić niestandardowy test dla pomocnika labelfor.
źródło
Nie pobrałem jeszcze wersji 2, więc nie mogę przetestować, ale uważam, że działa jak DynamicData, w takim przypadku zrobiłbyś coś takiego na swoim modelu:
[Display(Name = "The Super Fantastic Field")] public string MyField {get;set;}
źródło
Istnieją dwa sposoby:
1 "bezpośrednie adnotacje"
2 "adnotacje z zasobem"
bezpośrednie adnotacje
[Display(Name = "My Field")] public string MyField { get; set; }
Annotatinos z zasobem
[Display(Name = "My_Field",ResourceType = typeof(Resource))] public string MyField { get; set; }
Drugi sposób będzie wymagał dodania wartości w pliku zasobów, prawdopodobnie o nazwie Resource.resx .
Użyj, który pasuje do Twojego celu.
źródło
Nie sprawdzałem jeszcze CP1, ale przeczytałem wydanie Scotta i wydaje mi się, że pamiętam, że kod został wygenerowany przez T4. Przypuszczam, że zawsze możesz to zmodyfikować, ale podejrzewam, że zapewnią przeciążenia w CP2.
Edycja: źródło jest zawsze dostępne, więc możesz po prostu zmodyfikować metodę, zmienić generator T4 i będziesz gotowy. Wstaw również bilet lub prośbę (w jakiś sposób) dla tego moda, aby mógł zostać wykorzystany w następnej wersji.
źródło
Występuje 5 przeciążeń. Kilka oferuje drugi parametr „string labelText”, który można ustawić na „The Super Fantastic Field”.
źródło