我正在为我们的asp.net表单应用程序编写一些自定义日志记录,并且我能够获取请求的URL,但是在帖子后面,我希望得到像__EVENTTARGET这样的内容来识别产生回传的控件/按钮。
我以为我可以使用Request.Form [“__ EVENTTARGET”],但在开始请求事件中,这会在回发后设置为空字符串。
关于如何在回发中获取此信息的任何想法?或者我必须等到结束请求才能检索此信息?
答案 0 :(得分:0)
好的,因为这对任何人来说似乎都不是一个有趣的问题,
我终于弄清楚为什么__EventTarget不在Request.Form []字典中。 asp按钮不使用_dopostback提交。而是执行标准表单提交,并将Request.Form []字典中的按钮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;
}
}
}