2013-05-21 35 views
0

這些條件都不會出現,或者將出現一個條件。當沒有提交時,條件從未被擊中當沒有提供查詢字符串時,條件永遠不會滿足

Private _page As String = HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString("Page")) 
    Private _pge As String = HttpUtility.UrlEncode(Page.RouteData.Values("page")) 

    Private Function getPage() As String 
     Dim ret As String = "" 
     If String.IsNullOrEmpty(_page) = True AndAlso String.IsNullOrEmpty(_pge) = True Then 
      ret = 1 
     ElseIf String.IsNullOrEmpty(_page) = False AndAlso String.IsNullOrEmpty(_pge) = True Then 
      ret = _page 
     ElseIf String.IsNullOrEmpty(_page) = True AndAlso String.IsNullOrEmpty(_pge) = False Then 
      ret = _pge 
     End If 
     Return ret 
    End Function 
+1

打開'Option Strict'併爲自己做個忙。 – Jodrell

+0

另外,'如果String.IsNullOrEmpty(_page)= True AndAlso ...'比需要的更冗長。 '如果String.IsNullOrEmpty(_page)和...還有''怎麼了? (同樣,'Not'通常不是'False'的替代選擇] –

+0

@Damien_The_Unbeliever - 我更新了代碼 – ruffone

回答

0

可能被它弄糊塗了。你總是回報_page

試試這個..

Private Function getPage() As String 
     If String.IsNullOrEmpty(_page) = True AndAlso String.IsNullOrEmpty(_pge) = True Then 
      _page = 1 
      Return _page 
     ElseIf String.IsNullOrEmpty(_page) = False AndAlso String.IsNullOrEmpty(_pge) = True Then 
      Return _page 
     ElseIf String.IsNullOrEmpty(_page) = True AndAlso String.IsNullOrEmpty(_pge) = False Then 
      Return _pge 
     Else 
      Return _page 
     End If 

    End Function 
+0

我已經更新了代碼,但問題仍然存在 – ruffone

+0

對於您編輯的Q - 表示您遇到了FALSE - FALSE條件,所以你得到空字符串.. – matzone

+0

我還沒有得到空字符串 – ruffone

0

不知道你的問題是什麼,不能從問題告訴,但是,我已經重寫了函數這樣。

注意在您原來的功能中,您返回_page時它是Nothing或爲空。

Private Function GetPage() As String 
    Dim pageHasValue = Not String.IsNullOrEmpty(_page) 
    Dim pgeHasValue = Not String.IsNullOrEmpty(_pge) 

    If pageHasValue AndAlso pgeHasValue Then 
     Return "1" 
    End If 

    If pgeHasValue Then 
     Return _pge 
    End If 

    If pageHasValue Then 
     Return _page 
    End If 

    Return String.Empty 
End Function 
+0

我還沒有得到這個空字符串 – ruffone

+0

@ruffone你會得到什麼?顯示'_page'和'_pge'的聲明並告訴我們他們分配了什麼值。 – Jodrell

+0

我更新了代碼值「http://example.com,http://example.com/route」,而不是「http://example.com?page=1,http://example.com /路線/ 1" – ruffone