asp.net mvc 防止重復提交


string hiddenToken = "hiddenToken";
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            string httpMethod = filterContext.RequestContext.HttpContext.Server.HtmlEncode(filterContext.RequestContext.HttpContext.Request.HttpMethod);
 
            if (httpMethod == "POST")
            {
                // page token
                // hiddenToken
                string cacheToken = filterContext.HttpContext.Request[hiddenToken];
                //filterContext.HttpContext.Request.IsAjaxRequest()
                if (cacheToken != null)
                {
                    if (System.Web.HttpContext.Current.Cache[cacheToken] == null)
                    {
                        System.Web.HttpContext.Current.Cache.Insert(cacheToken, cacheToken, null, DateTime.MaxValue, TimeSpan.FromSeconds(1));
                        LogHeper.Instant.log.Info("提交成功!");
                    }
                    else
                    {
                        LogHeper.Instant.log.Info(filterContext.HttpContext.Request.Url + "請不要重復提交!");
                        throw (new GLRISCRMException("請不要重復提交!"));
                    }
                }
            }
        }

 

@Html.Hidden("hiddenToken", new Guid().ToString() + DateTime.Now.Ticks)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM