我有一個購物車頁面(Cart.aspx),它有一個按鈕(有時)會發送到第三方支付網關,如果需要付款。支付網關將處理付款,然後在我的網站(Order.aspx)上進行無聲郵件,以便更新訂單狀態。禁用ViewState的頁面是否仍在驗證__viewstate字段?
即使在頁面上禁用了viewstate,Order.aspx也會拋出無效的viewstate錯誤。
發生什麼事情是Cart.aspx(已啓用viewstate)發佈到付款網關,並且網關將作爲無聲郵件的一部分發回。即使Order.aspx的viewstate被禁用且驗證被禁用,它仍然會嘗試驗證它正在提供的__viewstate字段。
我知道設置EnableViewState=false
會禁用__viewstate字段的渲染,但是如果另一個頁面提供該字段,它不應該仍然跳過驗證嗎?
我試着在Order.aspx的Page_Init
事件上調用ViewState.Clear()
,但ViewState顯然是空的。
有關如何解決此問題的任何建議?我不想禁用Cart.aspx上的ViewState(在某些情況下可能需要),但我無法弄清楚如何在Order.aspx上清除它。
它比這更糟糕 - 即使隱藏字段丟失或空白,並且頁面顯然不需要它,驗證代碼仍然運行! – 2016-04-08 17:13:01