如何在 HttpModule 的开始请求中获取 EventTarget



我正在为我们的asp.net表单应用程序编写一些自定义日志,我可以获得请求的url,但在回发时,我想获得__EVENTTARGET之类的东西,以确定生成所述回发的控件/按钮。

我想我可以使用请求。表单["__EVENTTARGET"],但在begin请求事件中,它在返回时被设置为空字符串。

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

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

我终于弄明白为什么请求中没有__EventTarget。形成[]词典。asp按钮不使用_dopostback提交。相反,然后进行标准的表单提交,并在请求中发送按钮的ID。将[]字典形成为字段。

幸运的是,我们的系统,所有按钮总是以"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;
                    }
                }
            }

最新更新