【发布时间】:2013-03-30 12:46:28
【问题描述】:
是否可以在通用 .ashx 处理程序中检索到 Page.PreviousPage 的等价物,然后从 .aspx 页面进行跨页面 PostBack?
我需要从执行 PostBack 的页面访问一些 POST 值,并且 - 虽然我可以简单地使用 Request.Form - 有问题的值来自 WebControls,因此具有相当晦涩(而且不是很健壮)的名称(例如 ctl00$WebFormsContent$SomeControl$SomeOtherControl$txtWhatever)。
我尝试了以下方法:
public void ProcessRequest(HttpContext context)
{
Page previous = context.PreviousHandler as Page;
if (previous != null)
context.Response.Redirect("http://www.google.com");
}
但是,这不起作用 - 在调试时,我可以看到 context.PreviousPage 为空。
有没有办法检索此信息并将其转换为Page?
【问题讨论】:
-
也许试试referer属性?
-
@EladLachmi 这样可以得到上一页的URL;但是,这不等同于
Page.PreviousPage,因为不会有维护的视图状态。 -
我认为即使您可以获得页面对象,也不会维护视图状态。如果您需要来自该页面的数据,发个帖子怎么样?
-
@EladLachmi 抱歉,当我写“viewstate”时,我真正想写的是“控件集合”。请查看我更新的问题。
-
基本相同...您需要控件内的值,并且这些值保留在视图状态中。即使您设法通过页面对象 AFAIK 获得引用,它们也将不可用。
标签: c# asp.net httphandler ashx