【发布时间】:2023-03-09 17:37:01
【问题描述】:
我使用 HtmlAgilityPack 作为从现有内部网页中提取内容的自动化流程的一部分。问题是我需要让它认为 IsPostBack 是真的。
这是流程:
对页面进行初始调用并提取 HTML。
解析 HTML 以提取 __EVENTVALIDATION、__VIEWSTATE、__EVENTTARGET 等...并将它们附加到我的下一个 POST 回到同一页面。
将特定条件附加到 POST 以模拟用户输入(例如日期范围选择)。
POST 回到同一页面并从响应中检索 HTML。
它在测试中有效,其中两个标准是根据我的提交设置的。但是另外两个在 IsPostBack 检查中被覆盖。到目前为止,我无法让它在第二个请求中看到 IsPostBack 是真的。
有谁知道 ASP.NET 设置 IsPostBack 的具体方法是什么?
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
我不知道答案,但如果它不是您正在做的一个,我建议您使用 Fiddler 观看实际帖子,并将其与您的假帖子进行比较,以看看你能不能找出差异。不妨让你的假帖子尽可能接近现实。
-
是的,我什至写了一些代码来自动复制标题,但我仍然得到相同的行为。
-
没有让它工作,但我确实想出了一个解决方法。它涉及设置不同的参数,但我必须为每个参数单独调用。检索更新的 VIEWSTATE,然后在下一次调用中使用它并设置下一个参数。这是一个 PITA,但它确实实现了我对这个特定实例的需求。
-
哎呀,真麻烦。这是我尽一切可能不惜一切代价避免使用 WebForms 的众多原因之一。做任何不寻常的事情都是一场噩梦。
标签: asp.net .net webforms viewstate ispostback