2014-01-21 58 views
2

我相對勝任的JavaScript。我認爲asp可能是寬容的,但我會把頭髮拉出來。ASP如果,否則如果只評估第一條語句

我想確定請求url是否具有特定的查詢字符串以運行某些代碼。但是,(我的)ASP看來,如果完全匹配的字符串是不匹配的失敗:

<% If Request.QueryString("somestring") Then%> target="_blank" <% Else If Not Request.QueryString() Is Nothing Then%> <% End If %> 

使用一個包羅萬象的失敗,也沒有合適的匹配:

<% If Request.QueryString("somestring") Then%> target="_blank" <% Else %> <% End If %> 

所以www.example.com?somestring=true工作正常,但是當我刪除或更改查詢字符串的任何部分時會引發錯誤。

此方法是否需要查詢字符串存在?如果沒有查詢字符串和不匹配的字符串,有沒有辦法使這項工作?

任何幫助,這將是驚人的。謝謝:)

+1

請問爲什麼要使用scriptlets而不是代碼隱藏? –

+0

我是一名設計師,而不是開發人員。 –

+0

除非Request.QueryString(「somestring」)返回一個布爾值,否則將會失敗。您不會從JS中的所有類型獲得與布爾值相同的轉換。 – Jesse

回答

2

假設你想要顯示target="_blank"如果somestring查詢字符串有一個值,那麼這會工作:

<% If Request.QueryString("somestring") IsNot Nothing Then%> target="_blank" <% Else %> <% End If %> 

如果你想查詢字符串比較特定的值,讓我們說JS

<% If Request.QueryString("somestring") = "JS" Then%> target="_blank" <% Else %> <% End If %> 
+0

中途在那裏。但是如果沒有查詢字符串它會出錯。 –

+0

如果沒有查詢字符串,上面的代碼將轉到Else塊。你能舉出一些使它出錯的例子嗎? – ekad

+0

是的,這部分工作,但如果我嘗試,然後匹配一個特定的查詢字符串(如JS)它失敗,很難。因此,如果這個確切的字符串,做到這一點,否則如果不是這個確切的字符串或沒有字符串,做到這一點。 –