c# – 如何检测.net中的页面刷新

前端之家收集整理的这篇文章主要介绍了c# – 如何检测.net中的页面刷新前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Button_click事件.刷新页面时,以前的Postback事件将再次触发.如何识别页面刷新事件以防止Postback操作?

我试了下面的代码解决它.实际上,我在SharePoint页面添加了一个可视化的webpart.添加webpart是一个回发事件,所以!每次我将webpart添加页面时,postback总是错误的,我在else循环中收到错误,因为对象引用是空的.

  1. if (!IsPostBack){
  2. ViewState["postids"] = System.Guid.NewGuid().ToString();
  3. Cache["postid"] = ViewState["postids"].ToString();
  4. }
  5. else{
  6. if (ViewState["postids"].ToString() != Cache["postid"].ToString()){
  7. IsPageRefresh = true;
  8. }
  9. Cache["postid"] = System.Guid.NewGuid().ToString();
  10. ViewState["postids"] = Cache["postid"].ToString();
  11. }

如何解决这个问题?

解决方法

对于我来说,使用viewstate对于我来说比 here更好.基本上:
  1. bool IsPageRefresh = false;
  2.  
  3. //this section of code checks if the page postback is due to genuine submit by user or by pressing "refresh"
  4. if (!IsPostBack)
  5. {
  6. ViewState["ViewStateId"] = System.Guid.NewGuid().ToString();
  7. Session["SessionId"] = ViewState["ViewStateId"].ToString();
  8. }
  9. else
  10. {
  11. if (ViewState["ViewStateId"].ToString() != Session["SessionId"].ToString())
  12. {
  13. IsPageRefresh = true;
  14. }
  15.  
  16. Session["SessionId"] = System.Guid.NewGuid().ToString();
  17. ViewState["ViewStateId"] = Session["SessionId"].ToString();
  18. }

猜你在找的C#相关文章