校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Asp.Net防止刷新重復提交數據的辦法

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

熱門標簽:蘋果手機凱立德地圖標注 合肥電銷外呼系統哪家公司做的好 百度ai地圖標注 電話機器人軟件銷售工作 南陽外呼系統定制化 申請400電話手續(xù) 同安公安400電話怎么申請流程 預測式外呼系統使用說明 玉林市機器人外呼系統哪家好

在網上搜 一下,可以找到很多關于這方面的資料,其中有一篇是來自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;

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

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

     如果后退的話,將會出現該頁無法顯示

     Response.Redirect("post.aspx");

  }

}


上面這個方法非常簡單也很實用,推薦大家使用。

下面是我自己研究出來的另一種方法,該方法不同于“不保存緩存的方法”,它是讓瀏覽器保存所有頁面緩存的。該方法通過隨機碼的方式 來判斷是正常提交還是“刷新”或“后退”的。

首先(提交頁面是post.aspx)在 Session 中 增加變量 Rnd 用來存放隨機碼,同時在提交表單數據時不做處理,而是讓頁面轉到 post.aspx?r=x,這里“x”等于Session["Rnd"],這個時候在頁面加載時,通過判斷r的值和Session["Rnd"]的值是否相同,如果相同就處理提 交的數據,否則即可認為是“刷新”或者是“后退”操作了,最后再次付給Session["Rnd"]一個隨機碼。

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

復制代碼 代碼如下:

//獲取隨機碼

public class MyRnd

{

   public static string Rnd()

   {

     //隨機碼是由 0-9 a-z A-Z 之間的數字或字母組成的

     //下面是生成的20位隨機碼

     //0..9 A..Z a..z

     //48-57 65-90 97-122

     string rst = "";

     Random rr = new Random();

     for (int i = 0; i 20; i++)

     {

       int ir = 0;

       do

       {

         ir = rr.Next(123);

         if((ir >= 48) (ir = 57)) break;

         else if((ir >= 65) (ir = 90)) break;

         else if ((ir >= 97) (ir = 122)) break;

       }

       while (true);

       rst += ((char)ir).ToString();

       }

     return rst;

   }

}

//頁面加載

protected void Page_Load(object sender, EventArgs e)

{

   //獲取URL中請求的“r”值,如果“r”不存在則 r=""

   string r = "";

   if(Request.QueryString["r"] != null)

     r = Request.QueryString["r"].ToString().Trim();

   string t;

   //獲取 “Session” 中的 “Rnd” 值,用于和“r”比較

   t = Session["Rnd"].ToString().Trim();

   //如果“r=t”則為提交操作,即可對表單的數據進行處理

  if(r == t)

  {

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

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

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

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

     else      {

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

       /*

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

       MyConn.ExecQuery(sql);

       */

       //提交成功后清空表單數據

       txtTitle.Text = "";

       txtText.Text = "";

       //顯示提交成功信息

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

     }

  }

   //否則可以認為是“刷新”或者“后退”操作

   else

   {

       txtTitle.Text = "";

       txtText.Text = "";

  }

  //最后要重新獲得“Session["Rnd"]”的值,并將“btnOK.PostBackUrl”設為“Session["Rnd"]”的值

  Session["Rnd"] = MyRnd.Rnd();

  btnOK.PostBackUrl ="post.aspx?r=" + Session["Rnd"].ToString().Trim();

}

//這里提交按鈕(btnOK)單擊事件就不需要寫任何代碼了


通過這種方法,每次加載頁面時“Session["Rnd"]”都將得到一個新的值,而在刷新或后退時就不會得到相同的“r”和“t”值,數據也就 不會被重復提交,只有通過“btnOK”來提交的操作才會得到“r==t”,數據才會被提交處理的,通過判斷隨機碼的方式來阻止刷新重復提交就 可以實現了。

您可能感興趣的文章:
  • ASP.NET中為GridView添加刪除提示框的方法
  • asp.net表單提交時防重復提交并執(zhí)行前臺的JS驗證
  • asp.net防止刷新時重復提交(可禁用工具條刷新按鈕)
  • asp.net 處理F5刷新頁面重復提交頁面的一個思路
  • asp.net 防止用戶通過后退按鈕重復提交表單
  • Asp.Net中避免重復提交和彈出提示框的實例代碼

標簽:海南 臺州 南昌 淄博 揚州 南京 嘉興 南京

巨人網絡通訊聲明:本文標題《Asp.Net防止刷新重復提交數據的辦法》,本文關鍵詞  Asp.Net,防止,刷新,重復,提交,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Asp.Net防止刷新重復提交數據的辦法》相關的同類信息!
  • 本頁收集關于Asp.Net防止刷新重復提交數據的辦法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩电影在线免费看| 国内外成人在线| 国产伦精品一区二区三区免费迷| 久久国产尿小便嘘嘘尿| 欧美国产日本视频| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲免费在线看| 欧美刺激午夜性久久久久久久| 色综合夜色一区| 国产成人在线影院| 免费成人小视频| 亚洲国产精品久久久久秋霞影院| 中文字幕av一区二区三区免费看 | 国产99精品国产| 久久精品久久综合| 亚洲成人资源在线| 亚洲精品国产a久久久久久| 久久精品欧美一区二区三区不卡 | 日韩精品一区二区三区在线播放| 91九色02白丝porn| 91美女片黄在线观看91美女| 国产91丝袜在线播放0| 国产乱码精品一区二区三区av | 亚洲精品v日韩精品| 国产精品免费视频网站| 欧美精品一区二区久久婷婷 | 欧美日韩不卡在线| 91麻豆精品在线观看| www.成人网.com| 国产成人在线色| 九九精品一区二区| 精品制服美女久久| 精品无码三级在线观看视频| 美日韩一区二区| 美女一区二区久久| 美美哒免费高清在线观看视频一区二区| 亚洲sss视频在线视频| 亚洲午夜免费视频| 亚洲第一综合色| 一区二区欧美在线观看| 一区二区三区欧美在线观看| 亚洲欧美一区二区三区极速播放| 中文字幕亚洲欧美在线不卡| 日本一区二区高清| 中文字幕一区在线观看视频| 国产精品毛片久久久久久久| 国产精品久久久久一区| 国产精品久久三区| 一区二区三区四区在线| 一区二区不卡在线播放 | 日韩一区欧美一区| 亚洲一区视频在线| 日韩高清在线电影| 九九视频精品免费| av激情综合网| 欧美日韩视频在线第一区| 7777精品久久久大香线蕉| 精品国产一区二区三区av性色| 久久日一线二线三线suv| 久久精品夜色噜噜亚洲a∨| 中文字幕不卡的av| 亚洲精品中文在线观看| 日本午夜精品视频在线观看| 久久电影国产免费久久电影| 国产91精品久久久久久久网曝门| 91婷婷韩国欧美一区二区| 精品视频在线看| 久久午夜色播影院免费高清| 1区2区3区欧美| 丝袜亚洲另类欧美| 国产成人免费视| 一本久道久久综合中文字幕| 欧美精品久久99| 久久在线观看免费| 亚洲男人的天堂在线aⅴ视频| 秋霞av亚洲一区二区三| 国产精品77777竹菊影视小说| 色婷婷综合久久久中文一区二区| 欧美一区二区三区四区在线观看| 欧美国产精品久久| 亚洲国产sm捆绑调教视频| 激情丁香综合五月| 色婷婷综合中文久久一本| 欧美mv日韩mv国产| 亚洲一区视频在线| 国产精品18久久久久久久久| 欧美性猛交一区二区三区精品| 久久久欧美精品sm网站| 亚洲午夜久久久久久久久久久| 国产精品99久| 69堂精品视频| 亚洲天堂免费在线观看视频| 久久91精品久久久久久秒播| 91黄色免费版| 久久久99久久精品欧美| 日韩在线卡一卡二| 91麻豆蜜桃一区二区三区| 久久久国产精品不卡| 五月婷婷激情综合网| 成人精品一区二区三区四区 | 91黄色免费观看| 国产欧美一区二区精品性| 午夜精品123| 色一区在线观看| 久久亚洲二区三区| 奇米影视在线99精品| 色老汉av一区二区三区| 国产亚洲一本大道中文在线| 首页国产欧美久久| 一本久久a久久精品亚洲| 中文字幕成人在线观看| 激情另类小说区图片区视频区| 欧美日韩精品欧美日韩精品一| 中文字幕人成不卡一区| 国产一区二区三区| 日韩三级.com| 午夜久久久久久久久| 日本韩国欧美在线| 国产精品每日更新在线播放网址| 国产乱理伦片在线观看夜一区| 欧美一级欧美一级在线播放| 亚洲午夜激情网页| 欧美中文字幕久久| 亚洲精品欧美激情| 欧美在线免费观看亚洲| 亚洲另类春色校园小说| 91丨九色丨黑人外教| 中文字幕日韩一区| 91丨九色丨蝌蚪丨老版| 亚洲天堂中文字幕| 色国产综合视频| 亚洲色图在线播放| 色婷婷综合视频在线观看| 亚洲乱码日产精品bd| 色综合久久久久网| 亚洲欧美影音先锋| 色婷婷国产精品久久包臀| 亚洲免费毛片网站| 欧美在线一区二区| 午夜一区二区三区在线观看| 欧美午夜精品免费| 日本不卡视频在线观看| 精品国产在天天线2019| 国产精品99久久久久久久女警| 欧美激情一区二区| 99精品在线免费| 亚洲综合在线免费观看| 欧美日韩免费不卡视频一区二区三区| 亚洲成人综合网站| 欧美一级片在线看| 国产一本一道久久香蕉| 中文字幕免费一区| 在线观看视频91| 日日夜夜精品视频免费| 精品乱人伦小说| 成人永久免费视频| 国产一区二区三区在线观看免费视频| 欧美一二区视频| 激情综合色综合久久| 国产欧美一区二区精品婷婷 | 色欧美日韩亚洲| 亚洲va韩国va欧美va| 欧美成人欧美edvon| 盗摄精品av一区二区三区| 一区二区三区四区蜜桃| 欧美一区二区二区| 高清在线成人网| 亚洲午夜精品网| 久久综合九色综合欧美就去吻| 成人看片黄a免费看在线| 亚洲欧美成aⅴ人在线观看| 在线电影院国产精品| 国产一二精品视频| 一区二区三区.www| 欧美电视剧在线看免费| jizz一区二区| 日韩成人一级大片| 国产精品污网站| 欧美日韩电影在线| 国产精品羞羞答答xxdd | 成人综合激情网| 亚洲成人免费av| 国产亚洲欧洲一区高清在线观看| 99在线精品视频| 蜜桃视频在线观看一区二区| 国产精品色婷婷久久58| 欧美剧情片在线观看| 成人免费不卡视频| 青娱乐精品视频在线| 亚洲男人的天堂在线aⅴ视频| 亚洲精品一区二区三区福利| 欧美综合天天夜夜久久| 成人激情免费网站| 美腿丝袜一区二区三区| 亚洲一区在线视频| 亚洲国产精品高清| 欧美不卡在线视频| 欧美精品三级在线观看| 色婷婷综合中文久久一本| 国产精品白丝jk黑袜喷水|