我有一個register.aspx
,它從用戶處獲取一些信息並將其存儲在數據庫中。但是,當用戶刷新頁面時,我無法解決雙提交問題。這裏是我的registration.aspx
文件:Post重定向獲得雙重提交預防的解決方案
<form id="form1" runat="server">
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:Button ID="btnRegister" runat="server" Text="Button" onclick="RegisterUser" />
<asp:Label ID="lblErrorMessage" runat="server" Text=""></asp:Label>
</form>
這裏是registration.aspx.cs
文件:
protected void RegisterUser(object sender, EventArgs e)
{
if (txtUserName.Text.Length < 3)
{
lblErrorMessage.Text = "username should be minimum 3 characters, try again.";
}
}
不過,我嘗試使用我的瀏覽器,Chrome瀏覽器測試。當我使用文本「a」作爲用戶名時,它會進入RegisterUser
函數並顯示錯誤消息。但可悲的是,當我嘗試刷新頁面,它要求重新提交,而我所期待的,沒有任何問題刷新:
我嘗試使用Response.Redirect
,它也不能工作。
的'Response.Redirect'會所做的工作,你可能不正確地應用它。 – Aristos
@Aristos,你能給出使用'Response.Redirect'的正確版本嗎? – Sait
@zagy如果你想你可以在提交後重定向頁面。 但是,我認爲這是形式的常見行爲。您可以在許多網站上看到與gmail登錄頁面相同的表單行爲。 –