Simple If Then语句不按照我认为的方式工作

时间:2015-10-30 03:50:14

标签: vbscript asp-classic

我对VB比较新,我被迫使用在线编码方法。我想检查变量的非空值,然后显示图像。这就是我想要它做的一切。以下是我尝试过的几个例子。

<% if ACTL is not nothing then %>
<img id="ACTLLogo" src="<%= ACTL %>" />
<% else end if %>

或者这个:

<% if ACTL is nothing then %>
&nbsp;
<% else %>
<img id="ACTLLogo" src="<%= ACTL %>
<% end if %>

或者这个:

<% if String.IsNullOrEmpty(ACTL) then %>
&nbsp;
<% else %>
<img id="ACTLLogo" src="<%= ACTL %>
<% end if %>

当我只做没有if语句的部分时,标识显示正常,所以我想我不知道如何在ASP Classic中进行在线编码IF语句。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

要检查变量是否为NULL,请使用IsNull函数:

If Not IsNull(ACTL) Then
    Response.Write "<img src='" & ACTL & "' id='ACTLLogo'>"
End If

您还可以使用,检查变量是否为EMPTY(例如,如果您执行Request.Form("fld")并且表单没有名为fld的字段)猜对了,IsEmpty功能:

If IsEmpty(Request.Form("fld")) Then
    Response.Write "<p class='msg'>No such field!</p>"
End If

如果您关心的是变量是否具有值,任何值,那么您可以进行快速而脏的字符串转换:

If ACTL & "" <> "" Then
    ...
End If

后一个技巧对于避免在变量意外为NULL时可以获得的类型不匹配错误非常有用,而无需在整个地方添加If Not IsNull(...)

答案 1 :(得分:-1)

在ASP Classic中,您可以使用<% if ACTL <>"" %>

您也可以编写这样的代码,这样就无需关闭asp标记。

<% 
if ACTL <>"" then
response.write("<img id=""ACTLLogo"" src="""&ACTL&""" />")
end if
%>

可能更容易阅读和维护。