Формат html.LabelFor указанный текст [ASP.NET MVC 2]
кто-нибудь получил представление о том, как указать текст при использовании Html.LabelFor(c=>c.MyField)
. Это просто MyField
возможно, это не подходящее имя для отображения на экране, вместо этого Вам может понадобиться "супер фантастическое поле", но, похоже, никаких перегрузок нет.
какие идеи?
7 ответов:
вы используете
System.ComponentModel.DataAnnotations.DisplayAttribute
:[Display(Name = "My Field")] public string MyField { get; set; }
задание
ResourceType
свойство вашего атрибута позволит вам использовать файл ресурсов.(до .NET 4 Используйте
System.ComponentModel.DisplayNameAttribute
С оговоркой, что отображаемое имя должно быть константа времени компиляции.)
в MVC 3 есть новая перегрузка, поэтому вы должны иметь возможность указать пользовательский тест для помощника labelfor.
Я еще не загрузил v2, поэтому я не могу проверить, но я считаю, что он работает как DynamicData, и в этом случае вы сделаете что-то вроде этого на своей модели:
[Display(Name = "The Super Fantastic Field")] public string MyField {get;set;}
есть два способа
1"Прямой аннотации"
2 "Аннотатинос с ресурсом"
Прямые аннотации[Display(Name = "My Field")] public string MyField { get; set; }
Аннотатинос с ресурсом
[Display(Name = "My_Field",ResourceType = typeof(Resource))] public string MyField { get; set; }
Второй способ потребует добавить значение в файл ресурсов, вероятно, с именем ресурсов.resx.
Используйте то, что подходит для вашей цели.
Я еще не проверил CP1, но я прочитал его выпуск Скотта, и я, кажется, помню, что код был сгенерирован T4. Я полагаю, что вы всегда можете это изменить, но я подозреваю, что они будут обеспечивать перегрузки в CP2.
Edit: источник всегда доступен, и поэтому вы можете просто изменить метод, изменить генератор T4, и вам будет хорошо идти. Также поместите билет или запрос (каким-то образом) для этого мода, чтобы он работал в следующей версии.