国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.Net防止刷新重復提交數據的辦法

2024-07-10 12:46:22
字體:
來源:轉載
供稿:網友

在網上搜 一下,可以找到很多關于這方面的資料,其中有一篇是來自MSDN上的一種解決方法: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/BedrockASPNET.asp 它是通過重新定義 System.Web.UI.Page 類來實現加載頁面時,是“刷新”、“后退”請求,還是正常請求,其他的頁面則繼承了自定義的這 個Page類。感覺他這個方法比較獨特,有例子可以下載,有興趣的可以研究研究。

網上最多的解決此類問題的方法就是不保存緩存,即提交后表單上的數據不會被瀏覽器的緩存保存,如果此時再遇到刷新或者后退請求時, 就會顯示“網頁已過期”,數據也就不會重復提交了,這就起到了阻止刷新重復提交的效果。

下面以簡單的提交一篇帖子為例,介紹禁用緩存防止刷新重復提交的方法,表單數據包括“標題”和“正文”兩個部分。

以下是該方法的代碼(post.aspx):

代碼如下:
//頁面加載

protected void Page_Load(object sender, EventArgs e)

{

   //可以在頁面加載時設置頁面的緩存為“SetNoStore()”,即無緩存

   Response.Cache.SetNoStore();

   //Session中存儲的變量“IsSubmit”是標記是否提交成功的

   if ((bool)Session["IsSubmit"])

   {

     //如果表單數據提交成功,就設“Session["IsSubmit"]”為false

     Session["IsSubmit"] = false;

     //顯示提交成功信息

     ShowMsg.Text = " * 提交成功!";

   }

   else

     //否則的話(沒有提交,或者是頁面刷新),不顯示任何信息

     ShowMsg.Text = "";

}

//提交按鈕(btnOK)單擊事件

protected void btnOK_Click(object sender, EventArgs e)

{

   if (txtTitle.Text.ToString().Trim() == "")

     //ShowMsg是用來顯示提示信息的

     ShowMsg.Text = " * 標題不能為空!";

  else if (txtText.Text.ToString().Trim() == "")

     ShowMsg.Text = " * 內容不能為空!";

  else

   {

     //這里是將數據提交到數據庫中,省略

     /*

     string sql = "insert into tab...values(...)";

     MyConn.ExecQuery(sql);

     */

     //提交成功后,設“Session["IsSubmit"]”為true

     Session["IsSubmit"] = true;

     //強制轉換頁面(不可少,否則刷新仍會重復提交,仍轉到本頁),

     通過頁面的轉換將緩存中的提交的數據都釋放了,即提交的標單數據不會被保存到緩存里,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳河县| 布尔津县| 醴陵市| 鹤庆县| 泸溪县| 化州市| 汨罗市| 汝阳县| 额尔古纳市| 凤台县| 辽中县| 江西省| 磐石市| 平顺县| 广元市| 舞阳县| 高唐县| 屏南县| 深水埗区| 宁化县| 徐汇区| 安乡县| 丹寨县| 南安市| 云龙县| 财经| 敦化市| 墨江| 盖州市| 达尔| 营山县| 梁山县| 岗巴县| 浏阳市| 明水县| 西青区| 赞皇县| 酉阳| 定襄县| 新野县| 吉安市|