用双引号替换单引号

时间:2013-03-07 05:38:52

标签: c# html asp.net-mvc iis spark-view-engine

在我的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"/>

它取代了单引号&#39;双引号&#34;。 如果变量数据中有双引号,它将会中断。

现在我知道我应该测试html特殊字符或至少做

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

为什么本地机器和生产输出之间存在差异?

这改变的地方是它是火花视图引擎的一部分,还是部分的 C#中的响应构建器,但这没有意义吗? 我唯一能想到的是与IIS和VS2010内置Web服务器的区别?

文件编码在本地和生产UTF8上是相同的,有使用相同的dll。和相同的构建类型是Release。

应允许单引号和双引号。 Single vs Double quotes (' vs ")

这对于如何发生这种情况没有任何意义 而且我觉得我正在失去理智。

1 个答案:

答案 0 :(得分:1)

类似的问题在这里发布ASP.NET MVC 2 and sparkviewengine rendering single quotes to double quotes in html5 data- attribute(与被接受的anwser)可能不是相同的MVC版本,但可能是相同的Bug。