我在ASP页面上有一系列控件。有些在UpdatePanel中,有些则不在。
如果我在其中一个文本框中放置了一个XML标记(例如“<foo>
”),则UpdatePanel中的所有控件都不起作用。一旦标签被移除,一切都很好。
我的'提交'按钮位于UpdatePanel中,btnSubmit_Click上的断点仅在文本框中没有标记时才会被点击。
我是一个很长时间的C#开发人员,但对ASP.NET来说还是个新手,所以可能会遗漏一些明显的东西......这不是我期望的行为。
答案 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><foo> & <bar></textarea>
虽然在实践中浏览器通常会解决您的意思,并按原样显示任何<
个字符,但它仍然是无效的HTML和格式不正确的XML(可能这也是您在ASP中的问题的根源.NET,虽然没有特定的代码,但很难说。)