日期:2014-05-18  浏览次数:20602 次

急!请大家帮帮忙
我在default.aspx的button的click的事件里写了Server.Transfer( "default2.aspx ");
在default2.aspx的button的click事件里写了Server.Transfer( "default3.aspx ");
在default1.aspx可以成功跳转,但是跳转到default2.aspx以后再跳转到default3.aspx就出现
验证视图状态   MAC   失败。如果此应用程序由网络场或群集承载,请确保   <machineKey>   配置指定了相同的   validationKey   和验证算法。不能在群集中使用   AutoGenerate。
这种错误,但是单独打开default2.aspx跳转却不会出错..大家帮帮忙

顺便问一下..如何让用户点击网页任何连接,浏览器的地址栏都不发生变化,不用frame,因为这样不能真正隐藏掉真实的地址


------解决方案--------------------
LZ可不可以告知在下为什么要用Server.Transfer
而不用Response.Redirect?
为了保持地址栏中的路径吗?
这样电话还不如把初始页做成一个大框架:
<frameset rows= "0,* " frameboder=0>
<frame />
<frame name=main src= "default.aspx " />
</frameset>
然后所有的页面都在main里打开
------解决方案--------------------
使用Server.Transfer时应注意一点:

目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面Page指令的EnableViewStateMac属性设置成False。

<@Page EnableViewStateMac=false ...