2011-03-01 66 views
3

我有興趣在我的網站上爲我創建的某些表單實施PRG。目前他們回覆自己,顯然刷新這些頁面的數據一式兩份。任何人都可以指導我如何將代碼寫入我的網站的好教程的方向?我理解邏輯,但我不確定從哪裏開始。 謝謝Post重定向在asp.net中獲取

回答

6

回傳到表單後,您只需在回發後執行重定向。

DoPostbackProcessing(); 
Response.Redirect("FormConfirmationPage.aspx"); 

作爲一個非常簡單的例子,基本上只要你重定向(GET)到另一個頁面,則用戶無法複製回發。當然,如果論壇中有任何錯誤,您可能不想重新指定,但這是個別要求。

編輯:這方面的一個很好的例子是搜索,而不是回發,然後進行搜索,你會重定向和GET:

// Instead of performing search now we will redirect to ourselves with the criteria. 
var url = "SearchPage.aspx?criteria=" + txtSearch.Text; 
Response.Redirect(url); 

這然後重定向的頁面,然後檢查是否有標準的查詢字符串和然後執行搜索,當用戶刷新時再次搜索 - 再加上他們可以爲頁面添加書籤以便即時搜索。

+0

那麼我該如何引用已經發布到數據庫的原始表單的值呢?在經典的asp中,我使用request.form(「controlID」)完成了這種事情。一旦頁面被重定向,我可以這樣做嗎? – ajguk 2011-03-01 10:20:00

+0

不,PRG的想法是將關鍵值放在urls查詢字符串中,你只能在post-back期間檢索表單值,GET將使用查詢字符串。 HTMS。檢查了這一點:http://en.wikipedia.org/wiki/Post/Redirect/Get。 – Mantorok 2011-03-01 10:25:18

+0

謝謝,我已經使用request.querystring(「blahblah」)來獲取值。出於興趣,如果我有幾個想要插入超過限制的url的值?我的一些表單傳輸了大量的數據。 – ajguk 2011-03-01 10:30:42