在ashx文件中访问视图状态

4

我正在开发一个项目,其中有一个ashx处理程序文件,

我想在ashx文件中创建一些ViewState数据,然后在.cs文件中检查它们。

由于无法在ashx文件中访问ViewState对象,因此应该如何实现呢?

2个回答

4

您不能在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"]);
   }
}

0

ViewState 是特定于页面的,并包含在页面客户端的隐藏元素中。

我建议使用 SessionCache 对象作为更好的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接