Формат html.LabelFor указанный текст [ASP.NET MVC 2]


кто-нибудь получил представление о том, как указать текст при использовании Html.LabelFor(c=>c.MyField). Это просто MyField возможно, это не подходящее имя для отображения на экране, вместо этого Вам может понадобиться "супер фантастическое поле", но, похоже, никаких перегрузок нет.

какие идеи?

7 74

7 ответов:

вы используете System.ComponentModel.DataAnnotations.DisplayAttribute:

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

задание ResourceType свойство вашего атрибута позволит вам использовать файл ресурсов.

(до .NET 4 Используйте System.ComponentModel.DisplayNameAttribute С оговоркой, что отображаемое имя должно быть константа времени компиляции.)

простое решение просто добавьте следующее В представлении:

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

в 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, и вам будет хорошо идти. Также поместите билет или запрос (каким-то образом) для этого мода, чтобы он работал в следующей версии.

есть 5 перегрузок. Некоторые предлагают второй параметр "string labelText", который вы бы установили в"супер фантастическое поле".