Web浏览器显示警告'确认表单重新提交'当用户按F5或刷新页面时

时间:2014-10-15 11:26:15

标签: asp.net

我有一个非常简单的asp页面:

Default.aspx的:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" 
            AllowPaging="true" PageSize="4" 
            OnPageIndexChanging="GridView1_PageIndexChanging">

        </asp:GridView>
    </div>
    </form>
</body>
</html>

Default.aspx.cs代码隐藏:

public partial class _Default : System.Web.UI.Page
{
    private class FakeData
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
    private List<FakeData> fakeData;

    void InitFakeData()
    {
        fakeData = new List<FakeData>()
        {
            new FakeData(){ Age = 8, Name = "John"},
            new FakeData(){ Age = 9, Name = "Carl"},
            new FakeData(){ Age = 7, Name = "June"},
            new FakeData(){ Age = 6, Name = "Ellie"},
            new FakeData(){ Age = 9, Name = "Betty"},
            new FakeData(){ Age = 10, Name = "Sam"},
            new FakeData(){ Age = 5, Name = "Peter"},            
        };      
    }

    void ShowData()
    {
        InitFakeData();
        GridView1.DataSource = fakeData;
        GridView1.DataBind();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            ShowData();
    }

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        ShowData();
    }
}

结果

enter image description here

问题

如果用户按下F5或刷新GridView页面索引2中的页面,Web浏览器将弹出以下消息:

确认表单重新提交 您要查找的页面使用了您输入的信息。返回重复可能会导致某些操作。你想继续吗?

问题

如何避免浏览器显示该消息? (并在没有任何Web浏览器警告弹出的情况下显示GridView页面索引'n')

PS:使用Chrome,Firefox和IE11进行测试

1 个答案:

答案 0 :(得分:2)

点击PageIndex后,它会回发页面,即相当于表单提交。因此,当您refresh时,它会再次张贴页面,并询问Confirm Form Re-submission

这相当于这种情况。 - Preventing form resubmission

提交表单,提交后刷新页面,它会询问相同的消息。这是浏览器的默认行为。

它与您的网格分页或其中的分页点击无关。它会被浏览器触发,以防止用户在发布整个网格数据时重复表单提交。