【发布时间】:2012-01-25 15:18:22
【问题描述】:
我有 ASP.NET 网站。在某一时刻会触发回发并在服务器上修改一些数据并发送响应(具有新的视图状态)。 问题是我使用 jQuery 在页面上仅显示该响应的一部分。这行得通,但我在用新值更新视图状态时遇到问题。 我有这样的东西:
var updatePreviewArea = function (nid) {
var $content = jQuery('<div></div>');
$content.load('http://site.com?nid=' + nid, function (response) {
var $response = jQuery(response);
jQuery('targetDiv1').replaceWith($response.find('#srcDiv1'));
jQuery('targetDiv2').replaceWith($response.find('#srcDiv2'));
// update viewstate from postback response
var selectors = ['#__VIEWSTATE', '#__EVENTVALIDATION'];
for (var i in selectors) {
var value = $response.find(selectors[i]).val();
jQuery(selectors[i]).val(value);
}
});
}
但在此之后我得到:
Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException:验证 视图状态 MAC 失败。如果此应用程序由 Web Farm 托管或 集群,确保配置指定相同 validationKey 和验证算法。自动生成不能用于 一个集群。调用方法时:[nsIDOMEventListener::handleEvent]
【问题讨论】:
-
您使用 jQuery 加载的页面是否与原始页面相同?你有网络场吗?
-
不是同一个页面,也不是农场(但是我已经设置了机器密钥)
标签: javascript jquery asp.net postback viewstate