我在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>&lt;foo> &amp; &lt;bar></textarea>

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top