К сожалению, это поведение не является встроенным.Метод Html.DropDownList
(и большинство других методов HtmlHelper
) всегда экранирует весь вводимый текст.
Обходной путь
Однако есть обходные пути.Например, вы можете создать свой собственный метод HtmlHelper, который разрешает неэкранированный HTML.
Но если ваши потребности так же просты, как ваш пример, вот простой обходной путь:
Используйте заполнитель, такой как |
, а затем замените его на
, например:
@{
var noiceList = new SelectList(new[] { new {ID = "", Name = ""},
new {ID = "y", Name = "Yes|||after3Space"},
"ID", "Name");
}
@Html.Raw(Html.DropDownList("noice", @noiceList).ToString().Replace("|", " "))
Обратите внимание, вы также можете создать простой метод расширения, чтобы реально сократить объем требуемого кода:
public static HtmlString Replace(this HtmlString input, string findAll, string replaceWith) {
return new HtmlString(input.ToString().Replace(findAll, replaceWith));
}
Это упрощает ваш HTML-код до:
@Html.DropDownList("noice", @noiceList).Replace("|", " ")