asp.net中的视图状态异常无效。你知道任何解决方案吗?

时间:2010-05-06 09:38:28

标签: asp.net

这个问题让我抓狂! 我有asp.net网站,它定期提出这个错误(在IE8中):

    System.Web.HttpException: Invalid viewstate.
       at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType)
       at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler
.ProcessRequest(HttpContext context)
    ,...

或(在IE6中)

System.FormatException: Invalid length for a Base-64 char array.
   at System.Convert.FromBase64String(String s)
   at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)

或(在IE7中)

System.FormatException: Invalid character in a Base-64 string.
   at System.Convert.FromBase64String(String s)
   at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)

我将web.config中的enableViewStateMac设置为false并在我的web.config中定义了machinekey,并为每个页面定义了UTF-8编码 但我收到了这个错误。


你有什么解决方案吗?
最好的问候

2 个答案:

答案 0 :(得分:0)

当页面加载时,您是否多次在页面上执行数据绑定?如果您这样做,将会发生此错误。

答案 1 :(得分:0)

如果您在Page_Load事件期间绑定,请使用IsPostBack对象的Page标志,以便在加载期间仅绑定一次。

e.g。

if (!Page.IsPostBack)
{
    //Perform Binding Here
}

但如果您以编程方式动态添加ascx控件,则需要在每个后续帖子上绑定这些控件。