重定向会避免双重发布吗?

时间:2009-07-17 15:45:55

标签: c# asp.net post post-redirect-get

可能不是,但我想问。 重定向会避免双重发布吗?我知道有更好的方法可以避免它,但大多数双重发布怎么办?从我的理解它当前页面没有加载和用户点击刷新,而不是多次点击发布的bc。我认为重定向信息非常小,当用户点击刷新时,它只会尝试加载新页面而不会重新发送POST数据。

它只是一个非常简单快速的解决方案,我只是想知道它是否高效?

4 个答案:

答案 0 :(得分:5)

是的,重定向以避免双重发布是如此常见且非常有效,以至于该技术的名称为“Post-Redirect-Get”。它还可以使您的ASP.NET代码更清晰,因为您的页面不需要同时处理获取和发布。不再是这个:

if (!this.IsPostBack) {
    // Do one thing for gets
} else {
    // Do something else for posts
}

唯一的缺点是它可以complicate the display of status and error messages

答案 1 :(得分:1)

避免意外双重发布是件好事。

这甚至是最佳实践,许多MVC框架提供了简单的方法。

它还可以防止用户因为无法重新发送数据而无法刷新页面而感到烦恼。

答案 2 :(得分:0)

我认为这种方法适用于大多数成功案例。对于失败,它有点难看。

答案 3 :(得分:0)

是的,它可以用于此目的。