0

我在 ASP 页面上有一系列控件。有些在 UpdatePanel 中,有些不在。

如果我将 XML 标记放在其中一个文本框中(例如“ <foo>”),则 UpdatePanel 中的所有控件都不起作用。删除标签后,一切都很好。

我的“提交”按钮位于 UpdatePanel 中,并且仅当文本框中没有标签时才会点击 btnSubmit_Click 上的断点。

我是一名长期的 C# 开发人员,但对 ASP.NET 很陌生,所以可能会遗漏一些明显的东西……这不是我所期望的行为。

4

2 回答 2

1

如果您将 UpdatePanel 从页面中删除,您会发现回发导致了错误,因为 .NET 认为“<foo>”是在服务器上接受的具有潜在危险的数据位。在 StackOverflow 上查看这个问题。您看不到错误,因为错误页面 HTML 正在返回到 UpdatePanel 的 ajax 调用,而不是直接返回到您的浏览器,并且 UpdatePanel 不知道如何处理它。

您可以通过添加关闭检查

ValidateRequest="false"

到您的 aspx 文件顶部的 <@Page ... > 指令。或者您可以修改 web.config 以在您的 Web 应用程序中获得相同的效果。

于 2009-10-21T21:38:13.017 回答
0

您不能将标记放在文本区域中。您必须对 textarea 中的任何标记字符进行 HTML 转义,就像您必须对任何其他元素一样。

<textarea>&lt;foo> &amp; &lt;bar></textarea>

尽管实际上浏览器通常会理解您<的意思并按原样显示任何字符,但它仍然是无效的 HTML 和格式不正确的 XML(可能这也是 ASP.NET 中问题的根源,尽管没有特定的代码很难说)。

于 2009-10-21T21:31:34.460 回答