當你在 internet上沖浪時,你是否見到過下面這玩意?
作為 Web開發者,我們知道它的意義——表單已經POST到頁面,但正在嘗試刷新同一個頁面。我不知道研究這個主題是否有什麼重大意義,但我可以想象得到,我的奶奶遇到這個畫面時肯定不知道該怎麼辦。使用PRG模式吧。
PRG模式是什麼?
盡管 PRG模式不是什麼新鮮玩意,但在.NET社區強調的並不是很多。PRG表示“Post/Redirect/Get”,剩下的讓Wikipedia來解釋吧:
POST操作不是直接返回一個HTML頁面,而是返回一個重定向命令(使用HTTP 303響應碼(有時是302)以及HTTP的“Location”響應頭),引導浏覽器使用HTTP GET請求加載另一個頁面。這個結果頁可以安全地作為書簽進行保存或重新加載,而不會帶來非預期的副作用。
盡管 WebForms也能完成該功能,但非常復雜,因為頁面的postback模型需要靠回發自身來實現按鈕的單擊等操作。而MVC Framework使得實現PRG模式變得非常簡單。
怎麼做呢?給個例子呗?
我將用一個 Login功能作例子。如果登錄成功,用戶會被重定向到他的帳戶頁面,否則會被重定向回登錄頁。