使用server.execute
捕获当前页面的html时,以下代码会陷入无限循环。
在调试
Server.Execute
每次都会触发按钮点击事件。但为什么呢?
似乎preserveForm = true
正在维护表单中的click事件,但我需要这个来维护我的查询字符串。
Protected Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
test()
End Sub
Protected Sub test()
Dim writer As TextWriter = New StringWriter()
Server.Execute("ThisPage", writer, True)
End Sub
我知道我可以做一些类型或变量标志来检查循环的返回但是我想知道:
答案 0 :(得分:2)
根据HttpServerUtility.Execute Method的MSDN页面,此方法的preserveFrom
参数具有以下已定义的行为:
preserveForm
类型:System.Boolean
true 保存QueryString和 表格集; false 清除QueryString和Form集合。
表单集合将包含页面上控件的状态数据。因此,如果Execute()作为事件的一部分执行,则可能导致无限循环。