asp.net – 从aspx页面中的Static方法访问ViewState
发布时间:2020-05-24 12:29:31 所属栏目:asp.Net 来源:互联网
导读:假设我有一个静态方法,我需要从该方法访问viewstate …我怎么能这样做…我知道这是不可能的,但必须有一些出路. [WebMethod] public static string GetData(int CustomerID) { string outputToReturn = ; ViewState[MyVal]=Hello; return ou
|
假设我有一个静态方法,我需要从该方法访问viewstate …我怎么能这样做…我知道这是不可能的,但必须有一些出路. [WebMethod]
public static string GetData(int CustomerID)
{
string outputToReturn = "";
ViewState["MyVal"]="Hello";
return outputToReturn;
}
解决方法您可以通过 HttpContext.CurrentHandler获得对页面的引用.但是由于Control.ViewState受到保护,您无法访问它(不使用反射),而不是可通过HttpContext.Current.Session访问的Session.
因此,要么不使用静态方法,请使用Session或使用此反射方法: public static string CustomerId
{
get { return (string)GetCurrentPageViewState()["CustomerId"]; }
set { GetCurrentPageViewState()["CustomerId"] = value; }
}
public static System.Web.UI.StateBag GetCurrentPageViewState()
{
Page page = HttpContext.Current.Handler as Page;
var viewStateProp = page?.GetType().GetProperty("ViewState",BindingFlags.FlattenHierarchy |
BindingFlags.Instance |
BindingFlags.NonPublic);
return (System.Web.UI.StateBag) viewStateProp?.GetValue(page);
}
但是,如果通过WebService调用,则无效,因为它超出了Page-Lifecycle. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.net应用程序崩溃 – 无法加载文件或程序集“Microsoft.
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC 3项目工作在
- asp.net-mvc – ModelState.IsValid总是返回false
- asp.net-mvc-3 – 在ASP.NET MVC 3视图中渲染System.Drawin
- asp.net – 跟踪像素或javascript包括?
- asp.net-core-2.1 – 如何在asp.net Core 2.1.1中为Identit
- asp.net-mvc – 在BaseController中获取/设置HttpContext会
- 简明的ASP.NET验证摘要
- asp.net – 直接将.aspx转换为.pdf [已关闭]
- asp.net – 此版本的SQL Server不支持用户实例登录标志 连接
推荐文章
站长推荐
- 从asp.net获取验证AD用户objectGuid
- asp.net-mvc – 启动了Just-In-Time调试器,没有必
- asp.net – IIS 7.5 Web应用程序首先请求应用程序
- asp.net-mvc – 如何使用ASP.NET MVC 2验证两个属
- asp.net – 在转发器中只选择一个radiobutton
- asp.net – UpdatePanel回发后调用Javascript函数
- ASP.NET URL重写
- asp.net-mvc – 将.html文件渲染为ASP.NET MVC中
- asp.net-mvc – 在“剃刀”视图中默认一个部分
- 如何找出重新启动ASP.NET Web应用程序的原因
热点阅读
