惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
量子位
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
博客园 - Franky
M
MIT News - Artificial intelligence
U
Unit 42
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
J
Java Code Geeks
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
V
V2EX

博客园 - 堕落的卖猪贩

C#控件访问调用它的父级页面 GridView,IE浏览器去掉行右边竖的黑线 用ThoughtWorks.QRCode生成二维码时出现“索引超出了数组界限”的错误 经典情景剧,我爱我家 ASP.NET生成WORD文档,服务器部署注意事项 position:absolute; div居中 WIN2003 IIS6 FastCGI php5.33配置重点 安装程序检测到计算机重新启动操作可能处于挂起状态 的解决方法[转] Windows 2008非服务器使用系统设置 SQL2008安装常见问题 windows 2008安装KB971513,API3.0提示更新不会应用到系统 将远程桌面mstsc放到桌面 ul li做标题列表中间出现多的一个空行,重复。 windows2008配置来 winform笔记 Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用 - 堕落的卖猪贩 Server Application Unavailable - 堕落的卖猪贩 深度GHOST安装,GHOST完毕后不能启动继续 CSS+JS;JS+CSS换肤总结
ViewState提交后丢失,竟然是OnInit搞的鬼
堕落的卖猪贩 · 2016-12-10 · via 博客园 - 堕落的卖猪贩

提交后报错,断点看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;
    }
}

备忘,同时希望能给大家提供帮助。