在我的C# MVC视图代码中,我有一个隐藏的输入字段。
在我的本地机器上测试时,它生成HTML源代码。
<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(@"""", """)}"/>
为什么本地机器和生产环境的输出结果会有差异?
这个问题发生在哪里?是Spark视图引擎的一部分还是C#中的Response builder?但这似乎说不通?唯一我能想到的是IIS和VS2010内置Web服务器之间存在差异?
文件编码在本地和生产环境中是相同的,都是UTF8,使用的是相同的dll和Release编译类型。
单引号和双引号都应该被允许。 单引号 vs 双引号 (' vs ")
这真的让人无法理解,我感觉自己都快要疯了。