这是一个我没有看到答案的一般性问题。
我可以告诉PostBack
和代码刷新之间的区别,以确保人们不会重复提交相同的项目吗?
应用程序是基于C#的ASP.NET。代码如下:
protected void SubmitListItem(object sender, EventArgs e)
{
if (Page.IsPostBack) //Fires on both submit and F5
{
SPUser user = web.CurrentUser;
string alias = user.Email.Substring(0, user.Email.IndexOf('@'));
if (ListChoice.SelectedItem.Text == "comment")
{
SPList TargetList = web.Lists.TryGetList("Offer Comments");
SPListItem item = TargetList.Items.Add();
item["Title"] = TitleBox.Text;
item["Body"] = BodyBox.Text;
item["OfferID"] = OfferID;
item["Alias"] = alias;
item.SystemUpdate();
TargetList.Update();
LoadOffers();
}
else
{
SPList TargetList = web.Lists.TryGetList("Offer Best Practices");
SPListItem item = TargetList.Items.Add();
item["Title"] = TitleBox.Text;
item["Body"] = BodyBox.Text;
item["OfferID"] = OfferID;
item.SystemUpdate();
TargetList.Update();
LoadOffers();
}
}
}
答案 0 :(得分:4)
如果前一个请求是帖子,点击F5会发送一个帖子请求。因此,您还需要确保处理该案例。最糟糕的情况是用户反复点击按钮,同时发送多个帖子请求。通常通过在单击时禁用按钮来处理。它在不同的浏览器/设备上的工作方式不同,因此您需要指定受众群体。