【问题标题】:ViewState error in IE on postback回发时 IE 中的 ViewState 错误
【发布时间】:2012-09-25 18:07:15
【问题描述】:
我目前正在开发一个在 Sharepoint 中运行的 ASP.Net 网站。
在我解决这个问题之前,让我给你一些背景信息..
我开发了用户控件,然后将其作为 web 部件添加到共享点页面上。
其中一些 Web 部件是在共享点页面加载时动态加载的。
这就是我们这样做的方式:
- 创建将实际用户控件加载到应用程序页面的应用程序页面(InfoPage)
- 创建一个 UserControl (InfoContainer),它会抓取“InfoPage”并将其添加到“InfoContainer”中的 div 中,使用以下代码:
【问题讨论】:
标签:
c#
asp.net
sharepoint
user-controls
viewstate
【解决方案1】:
您可以使用System.Web.UI.Page 的LoadPageStateFromPersistenceMedium() 函数对包含打破其“”的逗号的视图状态进行自定义反序列化:
private ObjectStateFormatter _formatter = new ObjectStateFormatter();
protected override object LoadPageStateFromPersistenceMedium()
{
// fix here and load your ViewState on correct way
string vsString = Request.Form["__VIEWSTATE"];
return _formatter.Deserialize(vsString);
}
这只是一个您需要调试的想法,并使用它来解决您的问题。
【解决方案2】:
添加回调以移除额外的 ViewState 隐藏字段:
$("#InfoContainerDiv").load("应用页面的url"&rndNum=" + numRando, function() { 删除动态加载的VIEWSTATE隐藏字段。 });