asp:TextBox中的XML标签阻止其他控件工作?
-
05-07-2019 - |
题
我在ASP页面上有一系列控件。有些在UpdatePanel中,有些则不在。
如果我在其中一个文本框中放置XML标记(例如,<!> quot; <foo>
<!>“;),则UpdatePanel中的所有控件都不起作用。一旦标签被移除,一切都很好。
我的'提交'按钮位于UpdatePanel中,btnSubmit_Click上的断点仅在文本框中没有标记时才会被点击。
我是一个长期的C#开发人员,但对ASP.NET来说还是一个新手,所以可能会遗漏一些明显的东西......这不是我期望的行为。
解决方案
如果您要将UpdatePanel从页面上移开,您会发现回发导致错误,因为.NET认为<!>引用<!> lt; foo <!> gt; <!> ;是在服务器上接受的潜在危险数据。请参阅StackOverflow上的此问题。您没有看到错误,因为错误页面HTML正在返回到UpdatePanel的ajax调用而不是直接发送到您的浏览器,并且UpdatePanel不知道如何处理它。
您可以通过添加
来关闭检查ValidateRequest="false"
到<!> lt; @Page ... <!> gt; aspx文件顶部的指令。或者,您可以修改web.config以在整个Web应用程序中获得相同的效果。
其他提示
你不能把标记放在textarea中。您必须像使用任何其他元素一样HTML转义textarea中的任何标记字符。
<textarea><foo> & <bar></textarea>
虽然在实践中浏览器通常会解决您的意思,并按原样显示任何<
字符,但它仍然是无效的HTML和格式不正确的XML(可能这也是您在ASP.NET中的问题的根源,虽然没有具体的代码,但很难说出来。)
不隶属于 StackOverflow