0

ユーザーの情報がデータベースに保存されているASP.NET/C#のページで作業しています。
ページには多くのフィールドがあり、検証が完了すると情報が保存されます。

情報の送信は、ASP.NETボタンを使用して行われます。
テーブルの主キーは、コード自体で生成されます。つまり、テーブルが1つ増えるたびに生成されます。

ブラウザのリロードボタンを使用してページをリロードしているときに問題が発生しました。同じユーザー情報が、主キーの値を1つ増やして送信されていることに気付きました。

だから私の質問は、この問題にどのように取り組むべきかということです。
データの送信が成功した後、すべてのテキストボックスの値をクリアして、検証してからユーザーが情報を再度入力する必要があるようにする必要がありますか?

これをどのように処理できるかについて、あなたの考えを共有してください。

4

1 に答える 1

7

使用する最も簡単な方法は、Post/Redirect/Getパターンを使用することです。このパターンでは、行を挿入したポストバックの後、アイテムを表示できるページにユーザーをリダイレクトします。このように、[更新] を押すと、ビュー ページが更新されるだけです。

例えば:

protected void Button1_Click(object sender, EventArgs e) 
{
   // Insert Data
   ...

   // Redirect to get
   Response.Redirect("ViewItem.aspx?id=" + insertedItemId);
}

注意: 彼らは押し戻して再度送信することはできますが、通常、これは再送信する前にブラウザーによって確認されます。

于 2012-06-14T15:56:08.697 に答える