当设置为多行并将页面作为 xhtml 提供时,ASP 文本框控件似乎存在问题。我正在处理的项目使用内容协商将 asp 页面作为 application/xhtml+xml 提供给支持它的浏览器。问题是当 asp textbox 向页面呈现一个 textarea 时,它显式地在文本前面加上一个换行符。文本框的渲染方法的反射如下所示:
if (TextMode == TextBoxMode.MultiLine)
HttpUtility.HtmlEncode(Environment.NewLine + this.Text, (TextWriter) writer);
当 firefox 和 opera 使用 xhtml 内容类型提供此服务时,它们会将换行符解释为 textarea 中文本的一部分,因此我会在文本区域的开头获得额外的换行符。
我可以子类化文本框并覆盖渲染,但这似乎有点矫枉过正。有没有另一种方法来纠正这个问题?有谁知道为什么 asp 文本框会这样做吗?