在 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 中执行回发操作后刷新页面的主要内容,如果未能解决你的问题,请参考以下文章