2013-08-29 1 views
6

Я использую JQM-DateBox - которая нуждается в следующей Razor разметку:ASP.Net C# Бритва показывая кодированный HTML вместо сырого HTML

@Html.TextBoxFor(m => m.From, new { @name = "mydate", @id = "mydate", 
@data_role = "datebox", 
@data_options = "{'mode':'flipbox', 'dateFormat':'dd/mm/YYYY' ,'useNewStyle':true} ") 

Однако это оказывает как:

<input data-options=" {&#39;mode&#39;:&#39;flipbox&#39;, &#39;dateFormat&#39;:&#39;dd/mm/YYYY&#39; ,&#39;useNewStyle&#39;:true} " 
data-role="datebox" id="mydate" 
name="From" type="text" value="29/08/2013 00:00:00" /> 

Я знаю, что вы можете использовать html.raw - но как вы используете его в помощнике?

Мне нужно, чтобы показать:

{'mode':

... вместо ...

{&#39;mode&#39;:

+0

Код, который вы показываете как вход, не создает html, который вы показываете как результат. Была ли ошибка копирования? В 'TextBoxFor' отсутствует' mode' внутри '@ data_options'. –

+0

Вы правы - извините, скопируйте ошибку патча - скорректировано выше – Mark

ответ

10

Попробуйте @Html.Raw(HttpUtility.HtmlDecode(@Html.TextBoxFor(...).ToHtmlString())).

+0

Обратите внимание, что если вы когда-либо использовали '' 'в атрибуте, это уничтожило бы тег. –

3

TextBoxFor использует TagBuilder, который в конечном счете отвечает за включение ', чтобы &#39; (так как он использует MergeAttributes с параметром htmlAttributes передается помощнику).

Вместо того, чтобы вставить ответ, проверить Stop the tag builder escaping single quotes ASP.NET MVC 2

Кроме того, это не совсем точно такой же вопрос, но она есть. Я оставлю его другим, если они захотят закрыть его и привести ссылку выше.

Смежные вопросы