asp:TextBox中的XML标签阻止其他控件工作?

时间:2009-10-21 21:16:04

标签: c# asp.net controls updatepanel scriptmanager

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

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

我的'提交'按钮位于UpdatePanel中,btnSubmit_Click上的断点仅在文本框中没有标记时才会被点击。

我是一个很长时间的C#开发人员,但对ASP.NET来说还是个新手,所以可能会遗漏一些明显的东西......这不是我期望的行为。

2 个答案:

答案 0 :(得分:1)

如果您要将UpdatePanel从页面上移开,您会发现回发导致错误,因为.NET认为“&lt; foo&gt;”是在服务器上接受的潜在危险数据。请参阅StackOverflow上的this问题。您没有看到错误,因为错误页面HTML正在返回到UpdatePanel的ajax调用而不是直接发送到您的浏览器,并且UpdatePanel不知道如何处理它。

您可以通过添加

来关闭检查
ValidateRequest="false"

到&lt; @Page ...&gt; aspx文件顶部的指令。或者,您可以修改web.config以在整个Web应用程序中获得相同的效果。

答案 1 :(得分:0)

你不能把标记放在textarea中。您必须像使用任何其他元素一样HTML转义textarea中的任何标记字符。

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

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