看板 Python 關於我們 聯絡資訊
前文 43 : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.82.45 : ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1495432336.A.7BF.html : → coeric: 加過sess 好像也沒用? 05/22 14:03 : ※ 編輯: coeric (49.214.82.45), 05/22/2017 14:10:00 : → leo850611: get那次要和post使用同個session 05/22 14:14 : http://codepad.org/WLXoNk55 : 似乎還是不行......... : ※ 編輯: coeric (49.214.82.45), 05/22/2017 14:19:18 : → zerof: 要照順序 post 05/22 15:21 : → zerof: 應該說要照 "手動選" 的順序 post, 後端會檢查 viewstate 05/22 15:22 : → coeric: 挖塞.....感謝樓上上了一課...還有這樣的.... 05/22 16:11 : → coeric: 中間還有藏了一post..... 05/22 16:12 : 推 HenryLiKing: 不好意思我還是不太懂什麼叫做手動選的順序耶 05/22 17:08 本來想說解釋一下 viewstate 但這裡是 Python 板... 有興趣的話再自行研究吧QQ 簡單來說 post 到 server 的 __VIEWSTATE 的值會在每次 post 的時候被檢查, 檢查的方式跟內容依各 ASP.NET 網站的實作有所不同。 so, 「手動選的順序」指的是你實際上每一次動 dropdown list 的時候都會連動 post 操作的值回 server ,造成 __VIEWSTATE 變動,而 server side 剛好有檢 查你 post 到 server 的 state 是不是符合人工操作的狀態這樣。 (例如要先選第一個 list 才能選第二個 list) 不過 server 沒有 catch 這個 exception 就是了,不然不應該噴 500 error.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.19.253.250 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1495448884.A.8CA.html
coeric: 推推推~~~ 05/22 20:13
s860134: 其實現在很多 webgame 都是這樣的原理 05/22 23:13
s860134: 有的是帶在 cookie ,有的是夾在 data,每次 post 都刷新 05/22 23:14
s860134: 每次的 post 必須包含上一次的 respon 的 key 05/22 23:15
HenryLiKing: 不過還是希望原po大大介紹一點viewstate啊~ 05/23 08:16
HenryLiKing: <(_ _)> 05/23 08:16
http://blog.csdn.net/peak915/article/details/616868 大概就是這樣(咦 簡單來說 ASP.NET 有它自己的「控制項」,像 html 的 <input type="button"/> 在 ASP.NET 裡面可以是: <input type="button" runat="server"/> 或 <asp:Button runat="server" /> 利用 ASP.NET 提供的「控制項」,開發人員實際上並不需要熟 html , page 在 render 的時候會直接轉成 html tag + js (這也是為什麼 ASP.NET 的 DOM 都會 有一些奇奇怪怪的東西) ASP.NET 提供的「控制項」讓開發人員可以在 server-side 直接存取/識別它在 client-side 的狀態,靠的就是 postback & viewstate 。 (這也是為什麼 ASP.NET 的網頁很常出現動一個小東西就觸發ajax post 的原因) ASP.NET 在 server-side 有直接提供 <asp:DropDownList ...> ,就是這個網站 用的 <select> 。 (<asp:ddl> convert to <select> + postback in event.) ※ 編輯: zerof (192.19.253.250), 05/23/2017 11:07:32