Подтвердить что ты не робот

Почему я должен использовать LabelFor в MVC?

Почему я должен использовать LabelFor вместо <label>?

например.

@Html.LabelFor(model => model.FirstName)
@Html.DisplayFor(model => model.FirstName)

против

<label for="FirstName">First Name</label>
@Html.DisplayFor(model => model.FirstName)

В дополнение к вышесказанному, @p.s.w.g рассмотрел СУХОЙ аспект этого вопроса. Я также хотел бы знать, помогает ли это с локализацией. то есть. Различные метки, основанные на текущих настройках языка.

4b9b3361

Ответ 1

Хорошо, если вы украсили свои модели с помощью DisplayNameAttribute следующим образом:

[DisplayName("First Name")]
string FirstName { get; set; }

Затем вы указываете только то, что текст метки будет находиться в одном месте. Возможно, вам придется создать аналогичную метку в количестве мест, и если вам когда-либо понадобится изменить текст ярлыка, было бы удобно делать это только один раз.

Это еще более важно, если вы хотите локализовать свое приложение для разных языков, что вы можете сделать с помощью DisplayAttribute:

[Display(Name = "FirstNameLabel", ResourceType = typeof(MyResources))]
string FirstName { get; set; }

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

Ответ 2

LabelFor позволяет вам контролировать все из вашей модели просмотра, не беспокоясь о контроле.

Предположим, вы используете одну и ту же модель представления в двух местах, это означает, что вы можете изменить имя в одном месте, чтобы обновить все элементы управления.

Не используется , но он использует его.