ViewState提交后丢失,竟然是OnInit搞的鬼
Posted 堕落的卖猪贩-做人就象做诗,一旦上了境界,就下不来了。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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搞的鬼的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件
使用 JavaScript 出现在控件之后/下方的控件的 ViewState 丢失
pyton简单网络爬虫,aspx网站中form使用到了__VIEWSTATE__EVENTVALIDATIONcookie来验证的提交