Как поместить html-сущность в Asp.net mvc Html Helper Editor для заполнителя - PullRequest
0 голосов
/ 04 декабря 2018

Если я использую необработанный html <input /> с заполнителем, например:

<input id="TextSearch" name="TextSearch" placeholder="&#xf002;" type="text" value="" style="font-family: 'FontAwesome'" />

, он выглядит как: enter image description here, что хорошо.Но если я использую Hpml-помощник Asp.net mvc, например:

@Html.EditorFor(m => m.TextSearch, new { placeholder = "&#xf002;", style="font-family: 'FontAwesome';" })

, он выглядит так: enter image description here, он не может отобразить значок FontAwesome.Он обрабатывается как строка.

Как правильно отобразить его с помощью Html helper @Html.EditorFor()?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вы передаете атрибуты HTML placeholder и style как additionalViewData, а не htmlAttributes (см. EditorFor с 2 перегрузками здесь ).Простой TextBoxFor с HttpUtility.HtmlDecode() должен работать для всех версий MVC:

@Html.TextBoxFor(m => m.TextSearch, new { @placeholder = HttpUtility.HtmlDecode("&#xf002;"), @style = "font-family: 'FontAwesome'" })

Обратите внимание, что использование htmlAttributes внутри EditorFor работает только для MVC 5.1 и выше ,Если вы используете MVC версии 5.1+, вы должны использовать эту настройку EditorFor, в противном случае используйте помощник TextBoxFor, как указано выше:

@Html.EditorFor(m => m.TextSearch, new { htmlAttributes = new { @placeholder = HttpUtility.HtmlDecode("&#xf002;"), @style = "font-family: 'FontAwesome'" }})

См. эту скрипку , чтобы увидетьразница обоих помощников.

0 голосов
/ 04 декабря 2018

Для этого вам нужно использовать HttpUtility.HtmlDecode , поэтому ваш HTMLHelper должен быть таким, как показано ниже,

@Html.EditorFor(m => m.TextSearch, new { htmlAttributes = new { @PlaceHolder = HttpUtility.HtmlDecode("&#xf002;"), @Style = "font-family: 'FontAwesome'" } })
...