如果在经典asp中阻止但在外面工作,则包含virtual不起作用

时间:2012-04-18 03:27:09

标签: asp-classic include

出于某种原因,如果我的include在if语句中,它确实有效。我得到了

  

500 - 内部服务器错误。您的资源存在问题   正在寻找,它无法显示。

但我在外面包含相同的行,如果它呈现正确并显示表单。我错过了什么吗?

<% elseif EmailError <> "?" then %>
                <p class="StdParaHead">Can't Send Message</p>
                <p style="color:red;font-weight:bold">Please fill in
                <%if EmailError="NameBlank" then
                    Response.Write "your name"
                ElseIf EmailError = "EmailBlank" OR EmailError = "InvalidEmail" then
                    Response.Write "a valid e-mail address"
                ElseIf EmailError = "LocationBlank" then
                    Response.Write "your City and State"
                ElseIf EmailError = "BadSecurity" then
                    Response.Write "the proper security information"
                End if
                %></p>
                <p>clause1 </p>
<!--#include virtual="/includes/Content/ContactFormNew.inc"--> /* does not work here */

    <% else %>
                <p class="StdParaHead">Sorry...</p>
                <p>Due to an uncertain error, your message could not be sent at this time. Please see our <a href="contact.asp">contact information</a> for other ways to contact Axiom Valuation Solutions, or try again later.</p>
                <p><a href="/newlook/newsite/default.asp">Home</a></p>
                <p> CLAUSE 2</p>
<!--#include virtual="/includes/Content/ContactFormNew.inc"--> /* does not work */
    <%end if%>
<!--#include virtual="/includes/Content/ContactFormNew.inc"--> /* works here */

1 个答案:

答案 0 :(得分:0)

所以我最好的猜测是你在“ContactFormNew.inc”中定义了一些变量。

因为你不能“动态地”包含像你试图做的那样的文件包括两次。

这是因为包含是在解释任何ASP代码之前完成的,并且“ContactFormNew.inc”的内容被注入两次(在elseif end else块中)。

所以文件包含两次然后错误就是你定义了两次相同的变量...