我正在开发一个项目,其中有一个ashx处理程序文件,
我想在ashx文件中创建一些ViewState
数据,然后在.cs文件中检查它们。
由于无法在ashx文件中访问ViewState
对象,因此应该如何实现呢?
您不能在Ashx文件中访问页面的数据,因为当页面请求发生时,该处理程序被执行。
您可以使用Session对象来代替ViewState,方法如下:
public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Session["sessionvariable"] = "value";
}
}
或仅获得对session对象的只读访问权限
public class Handler : IHttpHandler, IReadOnlySessionState
{
public bool IsReusable { get { return true; } }
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write(ctx.Session["fred"]);
}
}
ViewState
是特定于页面的,并包含在页面客户端的隐藏元素中。
我建议使用 Session
或 Cache
对象作为更好的解决方案。