Vbscript 如何在ASP Classic中正确结束IF-ELSE语句?

Vbscript 如何在ASP Classic中正确结束IF-ELSE语句?,vbscript,asp-classic,Vbscript,Asp Classic,我在搜索结果页面中添加了一个IF语句,这样,如果用户不提供通知id或通知日期,它就不会运行长时间运行的过程。它工作正常,只是没有在错误消息下方显示新的搜索框。如果出现了一个结束,那么它一定是在错误的位置或是什么地方,但我似乎无法找到它 “新搜索”html应该一直显示,而不是有条件地显示,但它似乎只显示它们是否进行了有效的搜索 <%If task = "searchNotices" Then%> <HTML> <HEAD> <TITLE>Notif

我在搜索结果页面中添加了一个
IF
语句,这样,如果用户不提供通知id或通知日期,它就不会运行长时间运行的过程。它工作正常,只是没有在错误消息下方显示新的搜索框。如果出现了一个
结束,那么它一定是在错误的位置或是什么地方,但我似乎无法找到它

“新搜索”html应该一直显示,而不是有条件地显示,但它似乎只显示它们是否进行了有效的搜索

<%If task = "searchNotices" Then%>

<HTML>
<HEAD>
<TITLE>Notification System</TITLE>
<%Response.Write(NoEncode(GetStyleSheet("main")))%>
<script LANGUAGE="JavaScript">
<!--
function popUpWin(thePage,theWidth,theHeight,theTop,theLeft,theName) {
        var features ="status=no,scrollbars=yes,resizable=yes,width=" + theWidth +     ",height=" + theHeight + ",top=" + theTop + ",left=" + theLeft;

        var openit = window.open(thePage, theName, features);
        return;
}
-->
</script>
</HEAD>
<BODY>

<% <!-- begin what I added:-->

dim errorNeedsIdOrDate
errorNeedsIdOrDate = "<STRONG>Error: must input either a notice date or notice id.</STRONG><BR>"

IF isNull(noticedate) and isNull(noticeid) Then 
Response.Write errorNeedsIdOrDate
Else
<!-- end what I added-->
    Set rs = Obj.GetNoticeList (reterror, CInt(gSiteID), CLng(NoticeOwnerID), 9,cint(getPrint),cint(getFax),cint(getEmail),cint(getsuspend),noticedate, noticeid, null)

    if err <> 0 then LogError true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", Err

    If retError <> "" Then 
    LogErrorMessage EVENT_ASP_EXCEPTION, true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", retError
    Else
    %>
    <STRONG>Notice Search Results</STRONG><BR>
    <%if not rs.EOF then%>
                                                                                                                                                                                                                                                                                                                                                                                                                                <TABLE border=0 cellspacing=0 cellpadding=2>
    <TR class="DataHeaderRow">
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1"><STRONG>Send Now?</STRONG></TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">NoticeID</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Notice Sent</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">NoticeType</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">HowToSend</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Status</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">AccountNumber</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Send To</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Insured</TD>
        <TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Policy(s)</TD>
        <form action="notice_resend.asp" method="get" id=form1 name=form1>
        <input type="hidden" name="task" value="passID">
        <input type="hidden" name="NoticeOwnerID" value="<%=EncodeHTML(NoticeOwnerID)%>">
    </TR>
        <%
        Do until rs.EOF
        'HowToSend,NoticeType,DueDate,CancelDate,DaysPastDue,AmountDue,LateCharge,
        'TotalDue,PolicyNumbers,AccountNumber,NoticeID,insuredname,agentname,insconame
        if (not IsNull(rs("DateSent"))) then
            if (rs("SendStatus") > 1) then
                Select Case rs("HowToSend")
                Case 1
                    sMediaKind = "print"
                Case 2
                    sMediaKind = "fax"
                Case 3
                    sMediaKind = "email"
                Case else
                    sMediaKind = ""
                End Select
            end if
        end if
        %>
    <TR>
        <TD ALIGN="CENTER">
<%              if (rs("HowToSend") = NOTICE_SEND_NOSEND) then  %>
                &nbsp;
<%              else                            %>
                <INPUT TYPE="CHECKBOX" NAME="IDList" VALUE="<%=EncodeHTML(rs("NoticeID"))%>">
<%              end if                          %>              
        </TD>
        <TD>
<%              if ((CInt(gUserAccessLevel) > CInt(ACCESS_USER)) and rs("SendStatus")=0) then   %>
                <a href="javascript:popUpWin('ModifyNotice.aspx?noticeid=<%=EncodeURL(rs("id"))%>&refresh=no',500,300,350,150,'modifynotice')">
<%              end if  %>
                <font size="1"><%=EncodeHTML(rs("id"))%>
<%              if ((CInt(gUserAccessLevel) > CInt(ACCESS_USER))  and rs("SendStatus")=0) then  %>
                </a>
<%              end if  %>
        </TD>
        <TD>
            <font size="1">
            <% If (sMediaKind <> "") Then %>
                <a href="javascript:popUpWin('ViewNoticeWindow.asp?noticeid=<%=EncodeURL(rs("NoticeID"))%>&kind=<%=EncodeURL(sMediaKind)%>',800,320,200,50,'displaynotice')">
            <% End If %>
                <%=EncodeHTML(rs("DateSent"))%>
            <% If (sMediaKind <> "") Then %>
                </a>
            <% End If %>
            </font>
        </TD>
        <TD><font size="1"><%=EncodeHTML(rs("Notice_name"))%></TD>
        <TD><font size="1">
        <%Select Case rs("HowToSend")%>
        <%Case 1%>
        Print
        <%Case 2%>
        Fax
        <%Case 3%>
        Email
        <%Case -1%>
        Suspended
        <%End Select%>
        </TD>
        <TD nowrap><font size="1">
        <%Select Case rs("SendStatus")%>
        <%Case 0%>
        Needs Sending
        <%Case 1%>
        Not Yet Confirmed
        <%Case 2%>
        Confirmed Sent
        <%Case 3%>
        Cancelled on resend
        <%End Select%>
        </TD>
        <TD><font size="1"><%=EncodeHTML(rs("AccountNumber"))%>&nbsp;</TD>
        <TD><font size="1">
        <%=NoEncode(FormatSendTo(rs))%>

        </TD>
        <TD><font size="1"><%=EncodeHTML(rs("insuredname"))%>&nbsp;</TD>
        <TD NOWRAP><font size="1"><%=EncodeHTML(rs("PolicyNumbers"))%>&nbsp;</TD>
    </TR>

        <%rs.MoveNext
        Loop
        %>
    <TR>    
    <TD COLSPAN="15"><INPUT TYPE="submit" CLASS="MainFormBtn" VALUE="Mark For Resending"></TD>
    </form>
    </TR>
    </TABLE>
    <%else%>
        No records were found.
    <%end if
End IF

%>
    <HR SIZE="1">
    <TABLE WIDTH=410 BORDER=0 CELLPADDING=1 CELLSPACING=2>
    <TR>
    <TD colspan="2">New Search</TD>
    </TR>
    <TR>
    <form action="notice_list.asp" method="post" name="searchNotice">
    <input type=hidden name="task" value="searchNotices">
    <TD BGCOLOR="CCCCCC"><STRONG>Date&nbsp;notice&nbsp;was&nbsp;last&nbsp;sent</STRONG>&nbsp;&nbsp;&nbsp;mm/dd/yyyy</TD>
    <TD><INPUT TYPE="TEXT" SIZE="10" MAXLENGTH="10" name="noticedate"></TD>
    </TR>
    <TR>
    <TD BGCOLOR="CCCCCC"><STRONG>Notice ID</STRONG></TD>
    <TD><INPUT TYPE="TEXT" SIZE="4" MAXLENGTH="10" name="noticeid"></TD>
    </TR>
    <TR>
    <TD BGCOLOR="CCCCCC"><STRONG>How they are sent</STRONG></TD>
    <TD>
        Print<INPUT TYPE="CHECKBOX" <%If getprint="1" Then%>CHECKED<%End If%>  NAME="getprint" value="1">&nbsp;&nbsp;Fax<INPUT TYPE="CHECKBOX" <%If getfax="1"  Then%>CHECKED<%End If%> name="getfax" value="1">&nbsp;&nbsp;Email<INPUT TYPE="CHECKBOX"   name="getemail" value="1" <%If getemail="1" Then%>CHECKED<%End If%>>
        Suspended<INPUT TYPE="CHECKBOX" <%If getsuspend="1" Then%>CHECKED<%End If%>   NAME="getsuspend" value="1">
    </TD>
    </TR>
    <TR>
<!--
    <TD COLSPAN="2" ALIGN=RIGHT><INPUT STYLE="HEIGHT: 27px; WIDTH: 160px"
    type="submit"  CLASS="MainFormBtn" value="Search For Notices" id="Search"     name="SearchNotices">
-->     
    <TD>&nbsp;</TD>
    <TD>
        <INPUT STYLE="HEIGHT: 27px; WIDTH: 160px" type="submit"  CLASS="MainFormBtn"     value="Search For Notices" id="Search" name="SearchNotices">
    </TD>
    </form>
    </TR>   
    </TABLE>
    <%
    End If
%>

通知系统
设置rs=Obj.GetNoticeList(reterror、CInt(gSiteID)、CLng(NoticeOwnerID)、9、CInt(getPrint)、CInt(getFax)、CInt(getEmail)、CInt(getsuspend)、noticedate、noticeid、null)
如果错误为0,则LogError为true,“notice_list.asp”,“调用NoticeData.GetNoticeList失败”,错误
如果返回错误“”,则
LogErrorMessage EVENT\u ASP\u EXCEPTION,true,“notice\u list.ASP”,“调用NoticeData.GetNoticeList失败”,retError
其他的
%>
注意搜索结果
立即发送? 通知 发出通知 注意事项 如何结束 地位 帐号 寄往 确保 政策 1) 然后 选择案例rs(“HowToSend”) 案例1 sMediaKind=“打印” 案例2 sMediaKind=“传真” 案例3 sMediaKind=“电子邮件” 其他情况 sMediaKind=“” 结束选择 如果结束 如果结束 %> CInt(访问用户)和rs(“发送状态”)=0)然后%> 印刷品 传真 电子邮件 暂停的 需要发送 尚未确认 确认发送 重新发送时取消 没有发现任何记录。
新搜索 上次发送通知的日期mm/dd/yyyy 通知ID 它们是如何发送的 打印传真电子邮件 暂停的
您的问题有点不清楚,我不明白这个脚本的目的是什么。 无论如何,在上面的脚本中,您错过了在第148行结束的If语句:

您有3个主要的If语句:

IF isNull(noticedate) and isNull(noticeid) Then '1st if
Response.Write errorNeedsIdOrDate
Else


    if err <> 0 then LogError true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", Err 'an inline statement

    If retError <> "" Then '2nd if
    LogErrorMessage EVENT_ASP_EXCEPTION, true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", retError

    Else
    %>
    <STRONG>Notice Search Results</STRONG><BR>

    <%if not rs.EOF then 'this is the 3rd if%>
如果isNull(noticedate)和isNull(noticeid),则“第一个IF”
响应。写入errorNeedsIdOrDate
其他的
如果错误为0,则LogError为true,“notice_list.asp”,“调用NoticeData.GetNoticeList失败”,err'为内联语句
如果返回错误“”,则为“第二个如果”
LogErrorMessage EVENT\u ASP\u EXCEPTION,true,“notice\u list.ASP”,“调用NoticeData.GetNoticeList失败”,retError
其他的
%>
注意搜索结果

如果缺少
End If
它将无法工作,因为VBScript引擎将生成
预期End
错误。是的,我相信这只是End If位于错误的位置。我希望新的搜索标记总是被输出,并且当第一个IF语句(带有两个ifNull()检查)是truthy时,它似乎被排除在外。OP说“它工作得很好”,因此它好像缺少一个
End IF
就会出错,因此任何缺少的
End IF
都不是OP的实际问题。我怀疑用正确的形式回答这个问题有多有用。
    <%rs.MoveNext
    Loop
    %>
<TR>    
<TD COLSPAN="15"><INPUT TYPE="submit" CLASS="MainFormBtn" VALUE="Mark For Resending"></TD>
</form>
</TR>
</TABLE>
<%else%>
    No records were found.
<%end if
End IF
%>