void Request_ExtractValues(object sender, ExtractionEventArgs e) { RuleHelper.WhenAspNetResponse(e.Response, () => { RuleHelper.NotAlreadyExtracted <ExtractHiddenFields>(e.Request.ExtractionRuleReferences, () => { // Extract all hidden fields so that they can be used in next async/sync postback // Hidden fields like __EVENTVALIDATION, __VIEWSTATE changes after every async/sync // postback. So, these fields need to be kept up-to-date to make subsequent async/sync // postback var extractionRule = new ExtractHiddenFields(); extractionRule.Required = true; extractionRule.HtmlDecode = true; extractionRule.ContextParameterName = "1"; extractionRule.Extract(sender, e); }); // Extract all INPUT/SELECT elements so that they can be posted in (async)postback RuleHelper.NotAlreadyExtracted <ExtractFormElements>(e.Request.ExtractionRuleReferences, () => { new ExtractFormElements().Extract(sender, e); }); // Extract all __doPostBack(...) so that the ID of the control can be used to make async // postbacks RuleHelper.NotAlreadyExtracted <ExtractPostbackNames>(e.Request.ExtractionRuleReferences, () => { new ExtractPostbackNames().Extract(sender, e); }); // Extract all updatepanels so that during async postback, the updatepanel name can be derived RuleHelper.NotAlreadyExtracted <ExtractUpdatePanels>(e.Request.ExtractionRuleReferences, () => { new ExtractUpdatePanels().Extract(sender, e); }); }); }