在我的 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(@"""", """)}"/>
为什么本地机器和生产输出之间存在差异?
这在哪里发生了变化,它是 spark 视图引擎的一部分,还是 C# 中 Response builder 的一部分,但这没有意义?我唯一能想到的是 IIS 和 VS2010 内置 Web 服务器的区别?
本地和生产 UTF8 上的文件编码相同,使用相同的 dll。并且相同的构建类型是 Release。
应该允许单引号和双引号。 单引号和双引号(' vs ")
这没有任何意义这是怎么发生的而且我觉得我正在失去理智。