在 asp.net 中执行回发操作后刷新页面

Posted

技术标签:

【中文标题】在 asp.net 中执行回发操作后刷新页面【英文标题】:Refresh the page after a postback action in asp.net 【发布时间】:2010-10-07 21:11:06 【问题描述】:

我在我的 asp.net 网格中添加了命令按钮。使用该按钮执行操作后,我们刷新网格以反映新数据。 (基本上这个动作复制了网格行)。

现在当用户使用 F5 刷新页面时,如果我们选择“重试”,则会显示一条警告消息(将信息重新发送到服务器),该操作会自动重复。

我知道这是 asp.net 中的一个常见问题,我们怎样才能最好地处理这个问题?

【问题讨论】:

【参考方案1】:

在 POST 之后搜索 GET - http://en.wikipedia.org/wiki/Post/Redirect/Get - 基本上,在您完成事件处理后重定向到当前页面。

类似:

Response.Redirect(Request.RawUrl)

【讨论】:

【参考方案2】:

如果您认为不需要回发范式,则可能需要查看 ASP.NET MVC。

【讨论】:

【参考方案3】:

问题在于,当您按下按钮时,asp.net 按钮会执行表单发布。如果您用链接替换按钮,您的问题应该会消失。您还可以使用执行 javascript 功能的按钮,将 document.location 设置为您的页面地址。

【讨论】:

【参考方案4】:

如果我很好理解,您只需在填充网格之前检查您是否处于回发状态。 假设您在 Page_Load 上执行此操作,只需将操作用回发测试包围,如下所示:

private void Page_Load(object sender, EventArgs e)

    if(!this.IsPostBack)
    
        // populate grid
    

【讨论】:

【参考方案5】:

你需要调用 response.Redirect(Request.Url.ToString());

或者您可以使用 updatepanel 包装网格,并在每个命令之后将数据源绑定到网格

【讨论】:

【参考方案6】:

在你的 <asp:Repeater> 标签里面放这个:

EnableViewState="false"

这将导致您的控件在每次页面加载时刷新,无论是否是回发。

【讨论】:

【参考方案7】:

例如: 如果您单击“按钮”,系统将捕获事件“按钮点击”。 如果刷新页面,系统将再次执行相同的事件。 没有这个问题,在你的事件插入: 在您的活动中

private void button_click(object sender, System.EventArgs e)

    button.Enabled =false;
    button.Enabled =true;

你的意思是?

【讨论】:

这根本不是问题所在。

以上是关于在 asp.net 中执行回发操作后刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

ASP.net 回发 - 滚动到特定位置

asp.net mvc为啥刷新页面后ajax响应

asp.net 局部跳转无刷新怎么写?

在微信小程序中操作执行成功后回到上一页,并进行刷新

ASP.NET MVC RedirectToAction 不刷新页面

如何避免在回发时从 asp.net 重复输入?