2010-07-12 152 views
4

试图与传递参数运行的ReportViewer但收到错误:验证失败错误

Validation of viewstate MAC failed error (ASP.NET MVC)

曾尝试以下,但没有运气:

  1. 加入机键(http://aspnetresources.com/tools/machineKey )添加到web.config中的system.web标记

  2. 将enableEventValidation =“false”设置为web.config中的页面标记。

有帮助吗?

回答

2

我们不是早就有同样的问题和大量的搜索下面的代码后,已经解决了这个问题:

protected override object LoadPageStateFromPersistenceMedium() 
{ 
    string viewState = Request.Form["__VSTATE"]; 
    LosFormatter formatter = new LosFormatter(); 
    return formatter.Deserialize(viewState); 
} 

protected override void SavePageStateToPersistenceMedium(object viewState) 
{ 
    LosFormatter formatter = new LosFormatter(); 
    System.IO.StringWriter writer = new System.IO.StringWriter(); 
    formatter.Serialize(writer, viewState); 
    string viewStateString = writer.ToString(); 
    ClientScript.RegisterHiddenField("__VSTATE", viewStateString); 
} 

我们已经把它在脚本标记的看法,这是不是很漂亮,但它的工作原理...

进一步详情,请参阅: Strange unhandled exception from asp.net application - Validation of viewstate MAC failedhttp://www.codeproject.com/KB/viewstate/ViewStateCompression.aspx

+0

是..不是很漂亮..可是你知道吗..谁在乎..反正它解决了这个问题?!。 。:)你是一个乐队gend mate!..再次感谢。 – user384080 2010-07-12 22:16:53

+0

我很高兴它有所帮助。 :) – apolka 2010-07-13 07:21:58