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"];
}
}
}
希望这有帮助