Используя MVC и Razor, я хочу создать метку для поля, содержащего HTML, а именно гиперссылку. Однако, когда я использую метод Html.LabelFor()
, весь HTML кодируется на выходе.Сгенерировать метку с содержимым HTML
Этот скриншот показывает желаемый результат и то, что на самом деле MVC выводит вместо:
Есть ли способ, чтобы создать ярлык для моей модели собственности, которая будет корректно отображать содержимое HTML?
Мои ViewModel:
[DisplayName("I accept the <a href=\"/Terms & conditions\">Terms & conditions</a>")]
public bool AcceptedTermsAndConditions { get; set; }
Мое мнение:
@Html.EditorFor(m => m.AcceptedTermsAndConditions)
@Html.LabelFor(m => m.AcceptedTermsAndConditions)
Я также попытался непосредственно передать содержимое в качестве параметра "LabelText", без успеха:
@Html.LabelFor(m => m.AcceptedTermsAndConditions, "I accept the <a href=\"/Terms & conditions\">Terms & conditions</a>")
Почему вы не просто использовать '[DisplayName («Я принимаю»)]' и на ваш взгляд месте '' тег, как обычно право после '@ Html.LabelFor'? EDIT: Я предполагаю, что это вряд ли для этого якоря часто меняет URL. – Esteban
@Esteban Потому что это взломать? Перемещение ссылки с метки вызывает всевозможные проблемы: от локализации до разных языков, на которых ссылка может появляться в середине текста, при проблемах, когда я изменил внешний вид метки с помощью CSS позже. Я искал правильное решение для общего дела. Существует причина, по которой тег метки допускает содержимое HTML. – magnattic
достаточно справедливо. похоже, что вы можете использовать '@ Html.Raw' для отображения вашего' LabelFor (m => m.AcceptedTermsAndConditions) '. Ты это пробовал? – Esteban