2013-08-29 102 views
6

我使用的JQM-DateBox - 需要以下剃刀標記: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'在'@ data_options'裏面缺少'mode'。 –

+0

你是正確的 - 對不起,複製粘貼錯誤 - 更正 – Mark

回答

10

嘗試@Html.Raw(HttpUtility.HtmlDecode(@Html.TextBoxFor(...).ToHtmlString()))

+0

以上注意如果你曾經在屬性中使用'''這會破壞標籤。 –

3

TextBoxFor使用TagBuilder這最終是在轉彎'&#39;(因爲它使用MergeAttributeshtmlAttributes參數傳遞到助手)負責。

而是粘貼的回答,請Stop the tag builder escaping single quotes ASP.NET MVC 2

此外,這是不太相同的確切問題,但後來它。如果他們想要關閉它並引用上述參考,我會把它留給其他人。