读书人

页面做完后查看源代码有个lt;input

发布时间: 2012-10-30 16:13:36 作者: rapoo

页面做完后,查看源代码,有个<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=“”
input里的value的值是一段很长的字符串,这是什么,是正常吗?为什么会产生这么长的值?怎样能使他不产生呢?

/////////////////////////////////////////
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjQ2MzIyMDY3D2QWAgIDD2QWAgIJDzwrAA0BAA8WBB4LXyFEYXRhQm91bmRnHgtfIUl0ZW1Db3VudAIOZBYCZg9kFiJmD2QWHGYPD2QWAh4Fc3R5bGUFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAIBDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgIPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCAw8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAIEDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgUPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCBg8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAIHDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAggPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCCQ8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAIKDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgsPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCDA8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAINDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgEPD2QWBh4Lb25tb3VzZW92ZXIFZmN1cnJlbnRjb2xvcj10aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvcjt0aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvcj0nI2M5ZGVmYScsdGhpcy5zdHlsZS5mb250V2VpZ2h0PScnOx4Kb25tb3VzZW91dAVBdGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Y3VycmVudGNvbG9yLHRoaXMuc3R5bGUuZm9udFdlaWdodD0nJzsfAgULQ3Vyc29yOmhhbmQWHGYPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCAQ8PFgIeBFRleHQFATEWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCAg8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDFgJmDxUCIFByb2plY3RfQWRkX0NvZGVfRWRpdC5hc3B4P2lkPTMyCi5uZXTmioDmnK9kAgMPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQblvKDlj69kAgQPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VARXmmoLml7bmsqHmnInlkIjkvZzogIVkAgUPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQvvv6U1LjAwMC4wMGQCBg8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDFgJmDxUBB++/pTAuMDBkAgcPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQfvv6UwLjAwZAIIDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEL5a6hIOaguCDkuK1kAgkPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQnnvJbnqIvlraZkAgoPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQzkv6Hmga/lrabpmaJkAgsPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQoyMDEyLTAyLTIzZAIMDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEKMjAxMi0wNi0yNGQCDQ8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAICDw9kFgYfAwVmY3VycmVudGNvbG9yPXRoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yO3RoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yPScjYzlkZWZhJyx0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9Jyc7HwQFQXRoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yPWN1cnJlbnRjb2xvcix0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9Jyc7HwIFC0N1cnNvcjpoYW5kFhxmDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgEPDxYCHwUFATIWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCAg8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDFgJmDxUCIFByb2plY3RfQWRkX0NvZGVfRWRpdC5hc3B4P2lkPTU4CmphdmHmioDmnK9kAgMPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQblvKDlj69kAgQPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQExZAIFDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEE77+lMWQCBg8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDFgJmDxUBB++/pTAuMDBkAgcPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQfvv6UwLjAwZAIIDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEM5a6h5qC46YCa6L+HZAIJDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEJ57yW56iL5a2mZAIKDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQEM5aSW6K+t5a2m6ZmiZAILDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0MWAmYPFQELMjAxMi0wNi0yNCBkAgwPD2QWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQxYCZg8VAQsyMDEyLTA3LTE0IGQCDQ8PZBYCHwIFFGJvcmRlci1jb2xvcjojQ0NDQ0NDZAIDDw9kFgYfAwVmY3VycmVudGNvbG9yPXRoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yO3RoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yPScjYzlkZWZhJyx0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9Jyc7HwQFQXRoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yPWN1cnJlbnRjb2xvcix0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9Jyc7HwIFC0N1cnNvcjpoYW5kFhxmDw9kFgIfAgUUYm9yZGVyLWNvbG9yOiNDQ0NDQ0NkAgEPDxYCHwUFATMWAh8CBRRib3JkZXItY29sb3I6I0NDQ0NDQ2QCA">

[解决办法]
如果它确实很大(10K根本不算大!而你贴的远远小于10K),你可以写这个代码:

C# code
using System;using System.IO;using System.Linq;using System.Runtime.Serialization.Formatters.Binary;using System.Threading;using System.Web.UI;public class VPage : Page{    static private DirectoryInfo _Dir;    private static DirectoryInfo Dir    {        get        {            if (_Dir == null)            {                _Dir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data"));                if (!_Dir.Exists)                    _Dir.Create();                _Dir = new DirectoryInfo(Path.Combine(_Dir.FullName, "ViewState"));                if (!_Dir.Exists)                    _Dir.Create();            }            return _Dir;        }    }    protected override object LoadPageStateFromPersistenceMedium()    {        PageStatePersister ps = this.PageStatePersister;        ps.Load();        if (ps.ControlState != null)            ps.ControlState = 反序列化对象((string)ps.ControlState);        if (ps.ViewState != null)            ps.ViewState = 反序列化对象((string)ps.ViewState);        return new Pair(ps.ControlState, ps.ViewState);    }    protected override void SavePageStateToPersistenceMedium(object state)    {        PageStatePersister ps = this.PageStatePersister;        if (state is Pair)        {            ps.ControlState = ((Pair)state).First;            ps.ViewState = ((Pair)state).Second;        }        else            ps.ViewState = state;        if (ps.ControlState != null)            ps.ControlState = 序列化对象(ps.ControlState);        if (ps.ViewState != null)            ps.ViewState = 序列化对象(ps.ViewState);        ps.Save();    }    private object 反序列化对象(string stateID)    {        if (stateID == null)            return null;        object state = Cache[stateID];        if (state == null)            using (var stream = File.OpenRead(Path.Combine(Dir.FullName, stateID)))                state = new BinaryFormatter().Deserialize(stream);        else            Cache.Remove(stateID);        return state;    }    private string 序列化对象(object obj)    {        string stateID = Guid.NewGuid().ToString("N");        Cache.Insert(stateID, obj, null, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);        using (var stream = File.Create(Path.Combine(Dir.FullName, stateID)))            new BinaryFormatter().Serialize(stream, obj);        return stateID;    }    static VPage()    {        ThreadPool.QueueUserWorkItem(h =>        {            var et = DateTime.Now.AddMinutes(-30);            Dir.GetFiles()                .Where(f => f.LastAccessTime < et)                .ToList()                .ForEach(f =>                {                    try                    {                        f.Delete();                    }                    catch { }                });        });    }} 

读书人网 >C#

热点推荐