2014-01-21 61 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)它失败,很难。因此,如果这个确切的字符串,做到这一点,否则如果不是这个确切的字符串或没有字符串,做到这一点。 –