我在子页面的load事件中先给viewstate赋值(sting型),然后用母版的label控件将其显示出来,母版load代码:
Label8.Text = ViewState["Position"].ToString();
结果报错说未将对象引用到实例,但是如果在子页面中Label1.Text = ViewState["Position"].ToString();是可以显示的,不知为何,我用断点看过了是先执行子页面的load再执行母版的load啊

解决方案 »

  1.   

    页面的ViewState是页面实例自己的ViewState,母版的ViewState是母版实例自己的ViewState,它们不一样,就好像定义的局部变量不能想通一样。实际去创建母版的ContentPlaceHolder,或者为母版设计public的属性,都可以传递信息。
      

  2.   

    恩,就相当于ascx控件了
    你可以给模板创建一个属性,赋值
      

  3.   

    ContentPlaceHolder 和 母版 的viewstate各自独立。
      

  4.   

    ViewState 是 当前页面才可以 获得值
    不能跨页面传值~
      

  5.   


    不是什么跨页面。当一个页面使用了母版,运行时母版就是页面中的一个用户控件。与普通的用户控件不同只是这个用户控件(母版实例)中具有<html /><form />这样的标签而不是在页面实例中具有,而已。页面使用母版页,这并没有什么跨页面的情况。
      

  6.   

    ViewState是由ASP.NE页面框架管理的一个隐藏的窗体字段,只在当前页面有效
    可通过session等传值,也可定义内容页属性再取值
    Master.属性="";

    MySite master = (MySite)Master;
    master.属性= "";