日期:2014-05-18  浏览次数:20444 次

Viewstate在本页能读出,在别的页上访问不到
Frameset分左右两框架
左框架中有一树,点击结果赋值给一个viewstate变量
同在左框加中有一按钮,中有代码(下面红区)能Response.Write出刚刚赋得的viewstate值
在右框架中有一个网页中也有一个按钮,其代码和上述按钮一模一样(也和下面红区一样),为什么不能显示出viewstate值?

public partial class a_a : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
  }
  protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
  {
  ViewState["data"] = TreeView1.SelectedNode.ValuePath;
  }
  protected void Button2_Click(object sender, EventArgs e)
  {
String data = ViewState["data"] as String;
Response.Write(data);
  }
}


------解决方案--------------------
viewstate是在页面中才能访问的,
跨页面访问不了
------解决方案--------------------
ViewState是Page的属性,所以只能在当前页访问;跨网页除了A除了application外还可以用1. URL参数;2. 客户端cookies;3. 服务器端 session 来实现数据的的传递和共享吧
------解决方案--------------------
不会,session会给每一个访问的对象生成一个唯一的标识,另外如果你真想用viewstate那么做的话,还是可以满足的你要求的,那就没有上面安全性可言了。viewstate能实现夸页面的