.NET防止刷新重複提交
程式碼
公用類別RefreshServe:System.Web.UI.Page
{
私有靜態中ILog FRESH_TICKET_NAME =「__RefreshTicketArray」;
私人隻讀取字串HIDDEN_FIELD_NAME =「__RefreshHiddenField」;
私人唯讀字串HIDDEN_PAGE_GUID =「__RefreshPageGuid」; 為真表示頁面刷新,假為正常提交
/// 摘要>
公共BOOL IsPageRefreshed
{
獲得
{
如果(的IsPostBack &&!CheckRefreshFlag())
{
log.Debug(“刷新了頁面“);
返回true;
}
其他
{
log.Debug (「正常提交」);
返回false;
}
}
///
/ param>的
保護覆蓋無效的OnPreRender(EventArgs的送)
{ base.OnPreRender(E);
UpdateRefreshFlag();
///
///更新標識,並在正常提交中刪除該次提交的時間,並生產當前新的時間
)
{
地的Cookie模式
//與
HttpCookie餅乾= GetRefreshTicket();
cookie.Values .Remove(pageGuid);
log.Debug(「目前清除的cookie的變體是:」+ pageGuid);
}
//目前提交時間保存至隱藏域
ClientScript.RegisterHiddenField(HIDDEN_FIELD_NAME,submitTime);
, cookie.Values.Add( pageGuid,submitTime);
log.Debug(「UpdateRefreshFlag中目前的Cookie中存在的記錄數為:」+ C. .Count;我++)
#endregion
}
///
///驗證是否有刷新
私人布林CheckRefreshFlag()
{
的HttpCookie餅乾= GetRefreshTicket 的HttpCookie餅乾= GetRefreshTicket ();
字串pageGuid = GetCurPageGuid();
布林標記;
與(pookie.Value [pageGuid]! = NULL)
標誌= cookie.Values [pageGuid] .IndexOf(GetCurSubmit1())> -1;
log.Debug( 「提交時間存在,可提交」);
其他
回傳標誌;
}
///
///有已儲存的提交時間,沒有新建,有回
/// 摘要>
/// 工作> {
#地區的Cookie模式,回值為曲奇
的HttpCookie cookie的;
{
餅乾=新的HttpCookie(REFRESH_TICKET_ );
{
餅乾= Request.Cookies時[REFRESH_TICKET_NAME] 餅乾= Request.Cookies, 「讀取已存在的餅乾,曲奇當前存在的記錄數為:”+ cookie.Values.Count +“具體有以下幾條:”);
log.Info (「餅乾[」+ cookie.Values.GetKey(I)+「]:」+ cookie.Values [I]);
} #endregion
}
///
///取得目前提交時間
/// 摘要>
/// 回報>
字串submitTime = Request.Params [HIDDEN_FIELD_NAME] ==空值? 「」:Request.Params [HIDDEN_FIELD_NAME]的ToString();
log.Debug(「執行GetCurSubmitTime:
}
///
///設定頁面唯一標識,透過的Guid標識來區分每個頁面自己的提交時間
/// 摘要>
私人字串SetCurPageGu 字串GUID;
若(的IsPostBack!)
{
如果(Request.Params [HIDDEN_PAGE_GUID] == NULL)
{
GUID = System.Guid.NewGuid()的ToString()。
否則
地}
否則
{
}
回傳GUID;
}
///
///
/// 摘要>
/// 0>
字串pageGuid = Request.Params [HIDDEN_PAGE_GUID] ==空值? 「無」:Request.Params [HIDDEN_PAGE_GUID]的ToString();
log.Debug(「執行GetCurPageGuid(
}
}
999999999999999999999999999999999999999999999999刷新判斷功能時新頁面只需繼承該類別就可,通過引用屬性IsPageRefreshed識別“為真表示刷新,假則是正常提交”,將數據庫的操作寫在
如果(!IsPageRefreshed)
{
數據庫操作
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#在企業級應用、遊戲開發、移動應用和Web開發中均有廣泛應用。 1)在企業級應用中,C#常用於ASP.NETCore開發WebAPI。 2)在遊戲開發中,C#與Unity引擎結合,實現角色控制等功能。 3)C#支持多態性和異步編程,提高代碼靈活性和應用性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。
