我假设从单独的类库中的类访问viewstate类似于session
,application
和cache
对象。但我检查了HttpContext
课程,我发现要进入viewstate。我正在寻找一种方法来组织我在我的网络应用程序中使用viewstate的方式,我想创建一个处理这些操作的类。
我还检查了标有viewstate
标签的问题,我发现没有类似的问题。您能否告诉我如何从单独的类库中访问/引用viewstate对象?
答案 0 :(得分:1)
ViewState属性属于Control类,我们总是使用Page:Control中的一个。
Page有解码的Viewstate。您可以通过HttpContext.Current.Request
获取Base64文本,但这没什么用处。
答案 1 :(得分:0)
您可以通过HttpContext.CurrentHandler
获取对该页面的引用,但无法访问ViewState
,因为ViewState
受到保护。
当然使用Reflection
您可以访问ViewState
,例如:
var page = HttpContext.Current.Handler as Page;
var viewStateProp = page?.GetType().GetProperty("ViewState",
BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic);
var viewState = (StateBag)viewStateProp?.GetValue(page);