【问题标题】:Cannot store an object in a webcontrol when another webcontrol is executed执行另一个 Web 控件时无法将对象存储在 Web 控件中
【发布时间】:2013-01-31 13:57:17
【问题描述】:

我正在使用两个网络控件。 Web控件A包含Web控件B,调用Web控件A时,会自动调用Web控件B。 WebcontrolB 将一个值传递给 webcontrolA 的 Modify() 方法。我想存储一个对象,我使用视图状态:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            object o = Object;
            ViewState["o"] = o;

        }
    }

问题是当我返回到 webcontrolA 时,我从 ViewState 中检索到的对象为空。因此,当执行另一个 web 控件时,不会存储该对象。我可以储存吗??我也尝试了 Session 但它给了我以下错误:“错误消息:对象引用未设置为对象的实例”

为了从视图状态中检索值,我使用了这个:

public void Modify(int i)
{    
   object o = (object)ViewState["o"];  //result is null :(
}

【问题讨论】:

    标签: c# asp.net viewstate web-controls


    【解决方案1】:

    当你停留在同一页面时,ViewState 被持久化,你做回发操作(点击同一页面上的按钮)

    如果您丢失了 viewstate 值 => 您可能会在应用程序周围导航

    在导航的情况下,您可以使用会话变量

    Session["o"] = o;
    

    【讨论】:

    • 所以,我正在浏览控件,但是当我使用 Session 时,它会返回此错误:“错误消息:对象引用未设置为对象的实例”
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多