aspxページにユーザーコントロールを登録しています。
一部のaspxページに抵抗されたユーザーコントロールのボタンがあり、viewsteの値をデータベースに保存するためのアクションを実行します。その下で、ビューステート値をクリアしましたが、右クリックしてページをリロードすると、値が再挿入されます。データベースに対して、欠落しているものやビューステートがクリアされない場合、データベースに同じエントリを再保存しないようにするにはどうすればよいですか。
私は部分的に以下のコードを書いています。
protected void btnFinish_Click(object sender, EventArgs e)
{
if (ViewState["dtQuestions"] != null)
{
foreach (DataRow dr in dtQuestions.Rows)
{
int currQueScore = GetAnswerScore(dr["AnswerType"].ToString().Trim(), dr["ClientAnswerValue"].ToString().Trim());
dr["ClientAnswerScore"] = currQueScore;
myScore += currQueScore;
SurveyClientAnswer objDetail = new SurveyClientAnswer();
objDetail.SurveyClientID = objMaster.SurveyClientID;
objDetail.QuestionID = int.Parse(dr["QuestionID"].ToString());
objDetail.Answer = dr["ClientAnswerValue"].ToString();
objDetail.Score = int.Parse(dr["ClientAnswerScore"].ToString());
DB.SurveyClientAnswers.InsertOnSubmit(objDetail);
DB.SubmitChanges();
}
objMaster.FinalScore = myScore;
DB.SubmitChanges();
ViewState["dtQuestions"] = null;
}
else
{
ModalPopupExtender1.Show();
pnl.Visible = true;
}
}