2013-08-29 8 views
6

sto usando il jQm-DateBox - che ha bisogno il seguente Razor markup:ASP.Net C# rasoio mostrando codificato HTML invece di HTML grezzo

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

Tuttavia, questo rende come:

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

So che puoi usare html.raw - ma come lo usi all'interno di un helper?

ho bisogno di mostrare:

{'mode':

... invece di ...

{&#39;mode&#39;:

+0

Il codice visualizzato come input non produce l'html visualizzato come output. C'è stato un errore di copia incolla? 'TextBoxFor' manca' mode' all'interno di '@ data_options'. –

+0

sei corretto - mi spiace, errore di copia copia - corretto sopra – Mark

risposta

10

Prova @Html.Raw(HttpUtility.HtmlDecode(@Html.TextBoxFor(...).ToHtmlString())).

+0

Nota se hai mai usato "" "in un attributo questo distruggerebbe il tag. –

3

TextBoxFor utilizza TagBuilder che è in definitiva responsabile per trasformare ' per &#39; (poiché usa MergeAttributes con il parametro htmlAttributes passato al helper).

Invece di incollare la risposta, prova anche Stop the tag builder escaping single quotes ASP.NET MVC 2

Inoltre, questa non è proprio la stessa domanda esatta, ma poi è. Lascerò agli altri se vogliono chiuderlo e citare il riferimento sopra.

Problemi correlati