Asp.net 如何在HttpModule的Begin请求中获取EventTarget

Asp.net 如何在HttpModule的Begin请求中获取EventTarget,asp.net,webforms,httpmodule,Asp.net,Webforms,Httpmodule,我正在为我们的asp.net表单应用程序编写一些自定义日志,并且我能够获取请求的url,但是在回发中,我希望获得类似于u EVENTTARGET的内容,以确定生成回发的控件/按钮 我想我可以使用Request.Form[\uuu EVENTTARGET],但是在begin Request事件中,这被设置为post back上的空字符串 你知道如何在回邮时获得这些信息吗?或者我必须等到结束请求时才能检索此信息 好吧,既然这对任何人来说都不是一个有趣的问题 我终于明白了为什么uu EventTarg

我正在为我们的asp.net表单应用程序编写一些自定义日志,并且我能够获取请求的url,但是在回发中,我希望获得类似于u EVENTTARGET的内容,以确定生成回发的控件/按钮

我想我可以使用Request.Form[\uuu EVENTTARGET],但是在begin Request事件中,这被设置为post back上的空字符串


你知道如何在回邮时获得这些信息吗?或者我必须等到结束请求时才能检索此信息

好吧,既然这对任何人来说都不是一个有趣的问题

我终于明白了为什么uu EventTarget不在Request.Form[]字典中。asp按钮不使用_dopostback提交。而是执行标准表单提交,并将按钮ID作为字段发送到Request.form[]dictionary中

幸运的是,我们的系统,所有的按钮总是以btn开始,所以我可以确定哪个按钮导致提交。以下是我提出的基本代码:

 if (request.HttpMethod == "POST")
            {
                potentialTarget = request.Form["__EVENTTARGET"];
                if (string.IsNullOrWhiteSpace(potentialTarget))
                {
                    foreach (string ctrlName in request.Form)
                    {
                        if (!ctrlName.ToLower().Contains("$btn")) 
                            continue;
                        potentialTarget = ctrlName;
                        break;
                    }
                }
            }