gpt4 book ai didi

c# - 如何从共享类中访问 ViewState?

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:39 25 4
gpt4 key购买 nike

我编写了一些网页,这些网页使用需要 ViewState 值的常见例程。

能否将 ViewState 传递到函数中?

如果是,怎么做到的?

如果没有,我还能如何从类中的方法访问它们?

最佳答案

这是关键语句:

common routines that required ViewState values

但是函数并不真正需要“ViewState”值——它们只需要值。如果函数对 stringint 进行操作,那么最好以这种方式编写函数,这样更容易进行单元测试。

如果您想要读取和/或操作一些非常具体的值,那么您可以创建一个这样的类:

public class MyPageValues
{
public string Value1 {get;set;}
public string Value2 {get;set;}
}

然后添加从 ViewState 加载值的构造函数或扩展方法。

public class MyPageValues
{
public string Value1 {get;set;}
public string Value2 {get;set;}

public MyPageValues(){} //default constructor
public MyPageValues(System.Web.UI.StateBag viewState)
{
Value1 = (string)viewState["Value1"];
Value2 = integer.Parse(viewState["Value2"]); //Do some better checking.
}
}

更好的是,只需将整个类序列化到 View 状态并从那里检索它。

[Serializable()]
public class MyValues
{
public string Value1 {get;set;}
public string Value2 {get;set;}
}

public partial class YourPage: System.Web.UI.Page
{
private MyValues _values;

protected void Page_Load(object source, EventArgs e)
{
_values = ViewState["myValues"] as MyValues ?? new MyValues ();
}

protected void Page_PreRender(object sender, EventArgs e)
{
ViewState["myValues"] = _values;
}
}

这样你就可以在 Page_Load 中从 ViewState 中提取类(或者在需要时创建一个新实例),读取它,操作它,将它传递给其他函数,然后当你完成后,你只需将整个事情原封不动地保存回 ViewState

关于c# - 如何从共享类中访问 ViewState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com