首页 > 代码库 > ViewState提交后丢失,竟然是OnInit搞的鬼
ViewState提交后丢失,竟然是OnInit搞的鬼
提交后报错,断点看ViewStat值没有了。排查半天完全不知道怎么回事。
百度搜索了下ViewState提交丢失。然后CSDN一个帖子说的半拉子话提点了我。
然后想到我经常重写这些函数。以前怎么没遇到。然后检查代码改写后解决,虽然不知道怎么回事,但解决了。
原代码如下:
protected override void OnInit(EventArgs e){ base.OnInit(e); if (!IsPostBack) { vOrderID = Convert.ToInt32(Request.QueryString["OrderID"]); }}protected int vOrderID{ get { return (ViewState["vOrderID"] == null) ? 0 : Convert.ToInt32(ViewState["vOrderID"]); } set { ViewState["vOrderID"] = value; }}
就出在第一个函数上。改成如下放到OnPreLoad就对了。
protected override void OnPreLoad(EventArgs e){ base.OnPreLoad(e); if (!IsPostBack) { vOrderID = Convert.ToInt32(Request.QueryString["OrderID"]); }}protected int vOrderID{ get { return (ViewState["vOrderID"] == null) ? 0 : Convert.ToInt32(ViewState["vOrderID"]); } set { ViewState["vOrderID"] = value; }}
备忘,同时希望能给大家提供帮助。
ViewState提交后丢失,竟然是OnInit搞的鬼
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。