2013-08-29 16 views
6

Używam JQM-DateBox - który potrzebuje następujące Razor znaczników:ASP.Net C# Razor pokazując zakodowany HTML zamiast surowego html

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

Jednak ten renderuje jak:

<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" /> 

Wiem, że możesz używać html.raw - ale w jaki sposób używasz go w programie pomocniczym?

muszę pokazać:

{'mode':

... zamiast ...

{&#39;mode&#39;:

+0

Kod wyświetlany jako wejście nie generuje html, który wyświetla się jako wynik. Czy wystąpił błąd wklejania kopii? W 'TextBoxFor' brakuje' trybu' wewnątrz '@ data_options'. –

+0

masz rację - przepraszam, wklej błąd wklejenia - poprawiono powyżej – Mark

Odpowiedz

10

Spróbuj @Html.Raw(HttpUtility.HtmlDecode(@Html.TextBoxFor(...).ToHtmlString())).

+0

Uwaga, jeśli kiedykolwiek używałeś '" 'w atrybucie, to zniszczyłoby to tag. –

3

TextBoxFor wykorzystuje TagBuilder który jest ostatecznie odpowiedzialny za obracanie ' do &#39; (ponieważ wykorzystuje MergeAttributes z parametrem htmlAttributes przekazany do pomocnika).

Zamiast wklejając odpowiedź, sprawdź Stop the tag builder escaping single quotes ASP.NET MVC 2

Także to nie jest to samo dokładne pytanie, ale to jest to. Zostawię to innym, jeśli chcą go zamknąć i zacytować powyższe odwołanie.

Powiązane problemy