Html.LabelFor Указанный текст [ASP.NET MVC 2]

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

Любые идеи?

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

В MVC 3 появилась новая перегрузка, поэтому вы можете указать специальный тест для помощника labelfor.

Ответ 4

Я еще не загрузил v2, поэтому я не могу протестировать, но я считаю, что он работает как DynamicData, и в этом случае вы бы сделали что-то подобное в своей модели:

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

Ответ 5

Я еще не проверил CP1, но я прочитал его версию Scott, и, похоже, я помню, что код был создан T4. Полагаю, вы всегда можете это изменить, но я подозреваю, что они будут обеспечивать перегрузки в CP2.

Изменить: источник всегда доступен, и вы можете просто модифицировать метод, сменить генератор T4, и вам будет хорошо идти. Также поставьте билет или запрос (каким-то образом) для этого мода, чтобы он работал в следующей версии.

Ответ 6

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

Ответ 7

Существует два способа: 1 "прямые аннотации"
2 "Аннотатины с ресурсом"
Прямые аннотации

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

Annotatinos с ресурсом

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

Второй способ потребует добавить значение в файл ресурсов, который, вероятно, называется Resource.resx.
Используйте, который подходит для вашей цели.