Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在ASP.NET中的页面之间保持viewstate?_C#_.net_Asp.net_Viewstate - Fatal编程技术网

C# 是否可以在ASP.NET中的页面之间保持viewstate?

C# 是否可以在ASP.NET中的页面之间保持viewstate?,c#,.net,asp.net,viewstate,C#,.net,Asp.net,Viewstate,我在母版网页中有一个按钮(视图状态已启用),并在其中一个子网页中将其设置为visible=false。如果打开第二个子页面,则按钮状态(visible=false)不会持续 似乎viewstate仅对一个页面有效,不会传输到其他网页。是否有某种技巧可以使所有网页的视图状态成为全局的 否,viewstate是特定于页面的。您需要使用会话变量或查询字符串参数之类的东西在页面之间传递状态。否,您不能将视图状态设置为全局状态,它们是特定于页面的。如果你真的想让它成为客户端,我建议你使用cookies,否

我在母版网页中有一个
按钮
(视图状态已启用),并在其中一个子网页中将其设置为
visible=false
。如果打开第二个子页面,则按钮状态(
visible=false)
不会持续


似乎viewstate仅对一个页面有效,不会传输到其他网页。是否有某种技巧可以使所有网页的视图状态成为全局的

否,viewstate是特定于页面的。您需要使用会话变量或查询字符串参数之类的东西在页面之间传递状态。

否,您不能将视图状态设置为全局状态,它们是特定于页面的。如果你真的想让它成为客户端,我建议你使用cookies,否则你可以使用session。

如果你需要在“全局”级别上存储,你应该使用应用程序状态。您还可以使用缓存对象。 您可能希望将值从一个页面传递到另一个页面,可以通过将上下文对象与Server.Transfer结合使用来实现这一点

1) 在返回要传递的值的源页面上需要一个公共属性

namespace SomeNameSpace
{
    public partial class SourcePage: System.Web.UI.Page
    {
        public string ValueToPass
        {
            get
            {
                if (Context.Items["ValueToPass"] == null)
                    Context.Items["ValueToPass"] = string.Empty;
                return (string)Context.Items["ValueToPass"];
            }
            set
            {
                Context.Items["ValueToPass"] = value;
            }
        }
        ........
    }
}
2) 执行服务器传输(DestinationPage.aspx) 3) 在目标页面的页面加载事件中

namespace SomeNameSpace
{
    public partial class SourcePage: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var value = this.Context.Items["ValueToPass"];
        }
    }
}
希望这有帮助