Vbscript 简单的If-Then语句没有按照我认为应该的方式工作

Vbscript 简单的If-Then语句没有按照我认为应该的方式工作,vbscript,asp-classic,Vbscript,Asp Classic,我对VB比较陌生,我被迫使用在线编码方法。我想检查变量的NOTNULL值,然后显示一个图像。这就是我想要它做的。这里有几个我尝试过的例子 <% if ACTL is not nothing then %> <img id="ACTLLogo" src="<%= ACTL %>" /> <% else end if %> " /> 或者这个: <% if ACTL is nothing then %> &nbsp; <

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

<% 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 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语句进行在线编码。有什么想法吗?

在ASP Classic中,您可以使用

您也可以这样编写代码,这样就不需要关闭asp标记

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


可能更易于阅读和维护。

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

If Not IsNull(ACTL) Then
    Response.Write "<img src='" & ACTL & "' id='ACTLLogo'>"
End If
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(…)
到处都是。

这是ASP.NET还是ASP Classic?好的,删除VB.NET标签,然后是的,这完全有效。谢谢。我会尽快将其标记为答案。谢谢。我已经添加了一些改进的代码,作为打开和关闭@Joseph的替代方法。请小心,因为它不会检测到null或什么都没有。拉da例如,数据库中的ta可能返回空值。要解决此问题,请尝试使用一段快速且肮脏的代码,如:
如果ACTL&“”,则
@Lima:您错过了各种结束符,例如
响应中的语音标记和括号。写入
行。在(Response.Write)中为属性使用单个语音标记马克·厄普尼斯!喜欢看快的和脏的!+1