Как использовать Html.Raw в MVC Razor DropDownList? - PullRequest
6 голосов
/ 23 ноября 2011

Я использую DropDownList в MVC Razor, и у меня проблемы с автоматическим кодированием HTML.Мой код выглядит следующим образом:

@Html.DropDownList("MyList", Model.DropdownNamesAndValues)

Что отлично работает, за исключением того, что свойство SelectListItem.Text в списке DropdownNamesAndValues может содержать теги HTML жирным шрифтом или курсивом.В настоящее время они появляются буквально в раскрывающемся списке (например, <i>hello</i> world).Что я хотел бы знать, как это сделать:

  • Как применить @ Html.Raw к каждому из SelectListItem.Text свойств?
  • Если это не так, есть лиспособ просто удалить теги HTML вместо этого?В основном все, вместо того, чтобы показывать их буквально, как в настоящее время.

Ответы [ 4 ]

2 голосов
/ 23 ноября 2011

может потребоваться удалить эти HTML-элементы из самой модели, а затем добавить очищенные данные для добавления в выпадающий список

2 голосов
/ 23 ноября 2011

Напишите в контроллере метод, который ищет <*> and </*> подмножеств в ваших строках и удаляет их.

Не думаю, что вы можете добавить html-теги в выпадающий список.

1 голос
/ 24 ноября 2011

Вы должны удалить HTML-теги перед просмотром.В контроллере или, желательно, в той модели, в которой вы надеетесь получить значения.

1 голос
/ 24 ноября 2011

Если вы хотите разрешить выдачу HTML без кодирования, вы можете расширить DropDownList помощник, чтобы вы могли исключить вызов HttpUtility.HtmlEncode() в методе ListItemToOption.Кажется, вам придется использовать много кода, но его расширение (для других целей) описано в этой статье .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...