2013-03-07 156 views
3

在我的C#MVC視圖代碼更換單引號我有一個隱藏的輸入字段用雙引號

<input type='hidden' name='foo' value='${r.data}'/> 

在我的本地機器上測試它生成的HTML源代碼。

<input type='hidden' name='foo' value='bah'/> 

在我的生產服務器發送到客戶端的源

<input type="hidden" name="foo" value="bah"/> 

已經取代單引號'雙引號」。 如果有雙引號中這將打破可變數據。

現在我知道我應該測試的HTML特殊字符或至少做

<input type="hidden" name="buttons" value="${r.data.Replace(@"""", "&quot;")}"/> 

爲什麼本地機器和生產量之間的差異?

這個得到改變的地方在於它是火花視圖引擎的一部分,還是C#中的 響應構建器的一部分,但這沒有意義? 我唯一能想到的是與IIS和VS2010內置web服務器的區別?

文件編碼是對當地生產UTF8一樣,有使用相同的dll。和Release版本相同。

兩個單引號和雙引號應該被允許。 Single vs Double quotes (' vs ")

這沒有任何意義,這可能會發生 而我覺得我失去了我的想法。

+0

我能想到的唯一的事情是DOCTYPE <!DOCTYPE HTML PUBLIC! 「 - // W3C // DTD XHTML 1.0 Strict標準// EN」「http://www.w3.org/TR/xhtml1/DTD/ XHTML1-strict.dtd「> ,因爲它需要雙不單引號,但不能看到發動機或web服務器如何將平移源走出去 – rqmedes 2013-03-07 05:45:02

回答

1

一個類似的問題在這裏發佈ASP.NET MVC 2 and sparkviewengine rendering single quotes to double quotes in html5 data- attribute(與所接受anwser)可能不一樣MVC版本,但probally相同的錯誤。

+0

哇感謝漂亮的發現,解釋了爲什麼它的工作原理地方,因爲我使用本地1.6火花它有這個bug固定的,但只有1.5在生產中使用。現在需要找出爲什麼我部署不會同步依賴關係。再次感謝 ! – rqmedes 2013-03-07 09:53:40