快速的問題,我已經(jīng)嘗試自己弄清楚這一點,但是在試圖弄清頁面為什么或如何重新加載以及正在/不應(yīng)該執(zhí)行其應(yīng)做的工作時,會話變量的使用可能會造成混淆。在任何(非腳本化)情況下,頁面重新加載(使用JavaScript,f5,ctrl + f5,瀏覽器重新加載按鈕等)是否會導(dǎo)致表單重新發(fā)布?(這與在C#代碼中使用IfPost分支有關(guān),例如下面的示例代碼):if(IsPost){ //stuff that only executes if the previous request was a post.}我只是需要知道在這里期望什么,以便可以正確診斷會話狀態(tài)問題。謝謝你的幫助?。ù送猓绻疫^分簡化了這個問題,對不起。我意識到,這“可能”比簡單的答案更復(fù)雜)。** * ** *更新* ** * ** * ** * 另外,我在這里在StackOverflow上查找此問題的副本,但沒有看到任何內(nèi)容,因此,如果這是重復(fù)的問題,我深表歉意。這兩個答案都是好的答案。我接受了也為我的問題提供解決方案的答案,盡管PRG并不是解決問題的“唯一”方法,但似乎它是最好的方法。這似乎是一種處理客戶端用戶友好性的增長方法,恕我直言,這似乎是一個很好的習(xí)慣。感謝您向我展示!
3 回答

慕田峪7331174
TA貢獻1828條經(jīng)驗 獲得超13個贊
一種解決方法是使用令牌。
發(fā)送隨機字符串以及發(fā)布數(shù)據(jù)
將此隨機字符串存儲在某處
當(dāng)檢查發(fā)布數(shù)據(jù)時,請確保存儲的字符串與發(fā)布請求中的字符串相同。
如果為true,則處理請求。
生成一個新令牌
如果有人要刷新并重新發(fā)送帖子數(shù)據(jù),則帖子請求中的令牌將與您單獨存儲的令牌不同,因為您在步驟5中生成了新令牌
添加回答
舉報
0/150
提交
取消