【发布时间】:2010-09-24 14:56:50
【问题描述】:
我有一个购物车页面 (Cart.aspx),其中有一个按钮,如果需要付款,该按钮将(有时)发布到第三方支付网关。支付网关将处理付款,然后在我的网站 (Order.aspx) 上进行静默发布,以便我可以更新订单状态。
Order.aspx 总是抛出无效的视图状态错误,即使页面上禁用了视图状态。
发生的情况是 Cart.aspx(已启用视图状态)发布到支付网关,网关会将其作为静默发布的一部分发回。即使 Order.aspx 禁用了 viewstate 并禁用了验证,它仍然会尝试验证它所提供的 __viewstate 字段。
我知道设置EnableViewState=false 将禁用 __viewstate 字段的呈现,但如果另一个页面提供该字段,它不应该仍然跳过验证吗?
我尝试在 Order.aspx 的 Page_Init 事件上调用 ViewState.Clear(),但 ViewState 显然是空的。
关于如何解决这个问题的任何建议?我不想禁用 Cart.aspx 上的 ViewState(在某些情况下可能需要),但我不知道如何在 Order.aspx 上清除它。
【问题讨论】: