使用TextBoxFor截断字符串

Apo*_*gee 5 c# asp.net-mvc asp.net-mvc-3

在我们的ASP.Net MVC 3应用程序中,当字符串值包含双引号时,我们在表单上得到截断的字符串.

例如,给定一个文本框:

@Html.TextBoxFor(m => m.County)
Run Code Online (Sandbox Code Playgroud)

如果用户输入字符串:'Hampshire'County',当将值渲染回表单时,只显示字符串'Hampsire'.如果我检查模型中的值,双引号将被转义为'Hampshire \"县'.在Fiddler中,发布的值是正确的,并且值正确地存储在数据库中,因此它似乎与将文本框呈现给客户端的Html帮助器相关.

任何人都可以对此有所了解吗?

Apo*_*gee 0

事实证明,这是我们自己造成的问题。事实证明,大约 9 个月前,一些聪明的人(我)认为在自定义 HttpEncoder 中重写 HtmlAttributeEncode() 方法是个好主意。这在输出渲染期间触发。

我添加此内容的原因是应用程序的某些部分需要向客户端呈现脚本块,而默认编码器与 HTML 中的 JS 代码混在一起。

当我们删除重写方法后,问题就消失了。经验教训:除非绝对需要,否则不要乱用框架。

再次感谢大家花时间考虑这个问题。