ASP.NET - 使用 server.execute 时的无限循环



当使用server.execute捕获当前页面的html时,以下代码陷入无限循环。

调试时

Server.Execute会导致每次触发按钮单击事件。但是为什么?

看来preserveForm = true正在维护表单中的单击事件,但我需要它来维护我的查询字符串。

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

我知道我可以做一些种类或变量标志来检查循环的返回,但我想知道:

  • 这是正确的行为吗?
  • 是这样,为什么?
  • 清洁方法以避免循环。
  • 捕获整个页面 html 的推荐替代方法。

根据 HttpServerUtility.Execute 方法的 MSDN 页,此方法的 preserveFrom 参数具有以下定义的行为:

保存形式

类型:系统布尔值

如果为 true 以保留查询字符串和 表单集合;false 以清除 QueryString 和 Form 集合。

窗体集合将包括页面上控件的状态数据。因此,如果 Execute() 作为事件的一部分执行,这可能会导致无限循环。

相关内容

  • 没有找到相关文章

最新更新