2011-03-01 63 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