公司seo说这段不利于优化,然后我把form中的runat="server"删除,然后这段就没有了.此做法是否可行?主要是展示页面,需要提交表单的页面用ajax处理.还有,viewstate是否真的如传说中的那样不堪?

解决方案 »

  1.   

    google都说没有影响。不过是可以取消。
      

  2.   

    如果仅仅是展示页面没有用到服务器端的button 完全可以把form去掉
      

  3.   

    可以取消。不过一般来说没什么影响。如果viewstate很庞大,就有点影响了。
      

  4.   

    除了把runat=server删除,还可以怎么取消啊?
      

  5.   

    除了把runat=server删除,还可以怎么取消啊?在顶部加入EnableViewState="false",这段,少了很多但是还是有一小段.....
      

  6.   

    如果程序没用到服务器控件,去掉或禁用viewstate都可
    个人觉得 
    就你的viewstate来说  只是一个短短的隐藏域  如果这要是不行那大家都
    不要用隐藏域了,不像有的gridview直接绑定全部数据源分页 创建了大量
    的隐藏域值,这样才有可能抓取的时候抓到了大部分垃圾信息吧。
      

  7.   

    楼主试验下:如果你去掉form标签里面的runat="server",你还能添加服务器控件,比如<asp:Button ... />顺带贴下代码:
    #region 解决ViewState过于庞大的问题
            /*
            //由于这里添加了目录,所以要建立App_Data/ViewState目录.
            protected override object LoadPageStateFromPersistenceMedium()
            {
                string viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
                string stateStr = (string)Cache[viewStateID];
                if (stateStr == null)
                {
                    string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID + ".txt");
                    stateStr = File.ReadAllText(fn);
                }
                return new ObjectStateFormatter().Deserialize(stateStr);
            }
            protected override void SavePageStateToPersistenceMedium(object state)
            {
                string value = new ObjectStateFormatter().Serialize(state);
                string viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString();
                //产生离散的id号码           
                string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID + ".txt");
                //ThreadPool.QueueUserWorkItem(File.WriteAllText(fn, value));         
                File.WriteAllText(fn, value);
                Cache.Insert(viewStateID, value);
                base.SavePageStateToPersistenceMedium(viewStateID);
            }
            */
            #endregion