【问题标题】:How to read the querystring only in the first time?如何仅在第一次读取查询字符串?
【发布时间】:2011-04-24 08:37:51
【问题描述】:

我有一个层次结构,当用户按下添加孩子时,我会使用 [Add, ParentID] 参数重新打开同一个页面。

问题是,在按下 Add 后,会进行回发并再次读取查询字符串,因为查询字符串仍然相同,我在 page_load 中捕获并处理它。

注意:我不能使用IsPostBack,因为调用来自同一页面,所以总是true

任何帮助!

【问题讨论】:

    标签: c# asp.net query-string


    【解决方案1】:

    通过使用PageIsPostBack 属性,确保只在页面尚未回发时处理查询字符串:

    if(!IsPostBack)
    {
      //Process query string
    }
    

    【讨论】:

    • @Jack - 如果你调用为Response.RedirectIsPostBack 将是假的。
    • 非常感谢。我没有使用Response.Redirect。我使用的是PostBackURl,它没有进行回发。现在,一切正常。谢谢。
    【解决方案2】:
    If (!Page.isPostBack) {
    
    //read your query string here
    
    }
    

    【讨论】:

      【解决方案3】:

      在页面加载事件或您的按钮上单击添加:

       If Not IsPostBack Then
              'your code here
          End If
      

      C#

      if (!IsPostBack) {
      //your code here
      

      }

      使用会话

      if (Session("ok") == 0) {
      //some code
      Session("ok") = 1;}
      

      这只会在第一次加载时执行您的查询!!!

      【讨论】:

      • 这也在VB.NET中,问题被标记为c#。
      • 调用是从第一页开始的,所以IsPostBack总是为真
      • 然后为此使用一个会话
      【解决方案4】:

      在页面加载事件中

      添加这些代码,看看它是否有效

      如果 ((!IsPostBack)&&(!IsCallBack)) {
      //一些代码! }

      【讨论】:

        【解决方案5】:
        if(!IsPostBack)
        {
          // Read the query string.
        } 
        

        【讨论】:

          猜你喜欢
          • 2019-12-12
          • 2017-12-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-17
          • 2015-06-29
          • 1970-01-01
          • 2014-11-30
          相关资源
          最近更新 更多