Доступно <label>в MVC - PullRequest
       5

Доступно <label>в MVC

0 голосов
/ 31 марта 2010

С учетом следующей разметки MVC:

    <p>
        <label for="forenamesLabel">Forename(s):</label>
        <%: Html.TextBoxFor(model => model.ConsultantRegistrationDTO.Forenames) %>
        <%: Html.ValidationMessageFor(model => model.ConsultantRegistrationDTO.Forenames, "*") %>
    </p>

Как я могу точно установить атрибут label / @ for для идентификатора сгенерированного TextBox MVC? Если я буду использовать @id в качестве опции HTML, не нарушит ли это мою привязку?

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Как было предложено Keltex, вы можете использовать Html.LabelFor с декоратором DisplayName. Несколько соображений, которые согласуются с этим.

Декораторы LabelFor и DisplayName относятся только к MVC 2. Это может или не может быть вариантом для вас.

Использование этого метода, в частности, использования декоратора DisplayName, вводит проблемы View в вашу модель, что иногда нежелательно. Обычно лучше создать ViewModel и использовать там декоратор, чтобы сохранить разделение задач.

Это также позволяет вам использовать DisplayNameAttribute, когда ваша модель генерируется автоматически, как вы сказали, ваша.

1 голос
/ 31 марта 2010

Вы можете использовать

Html.LabelFor(c model => model.ConsultantRegistrationDTO.Forenames)

Тогда в вашей модели вам нужно указать DisplayNameAttribute из System.ComponentModel.DataAnnotations. Итак, ваша модель будет выглядеть примерно так:

public class ConsultantModel
{
    [DisplayName("Forenames")]
    public string Forenames { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...