【问题标题】:if page is default then include if not default then如果页面是默认的,那么包括如果不是默认的那么
【发布时间】:2016-06-07 06:09:08
【问题描述】:

我读过类似的问题,但似乎没有一个对我有用。

我有一个 asp 网站,我认为是经典的(甚至不知道经典和网络之间的区别),只有少数页面都带有 asp 扩展名,还有一些 html 包括,其中一个是我只想显示的滑块在主页时(default.asp),如果不是默认值,则在标记中添加一个 div。

我知道以下内容是错误的,但只是为了更好地解释我的需要。

<%
if page == default.asp
include file="slider.html"
if page != default.asp
<div class="spacer-top"></div>
%>

【问题讨论】:

  • 如果您的文件以 .asp 结尾,那么您处理的是 asp-classic。 ASP.net 文件以 .aspx 结尾。

标签: html vbscript asp-classic ssi


【解决方案1】:

玛莎一针见血。

为了补充她的答案,我觉得我应该指出系统设计在这里发挥作用。尽量保持你的模块小而简洁,将它们的功能定位到应用程序需求的特定方面。例如:

  • 一个处理您的数据层
  • 用于处理更高级的表单处理
  • 一个处理废话

你明白了。

另一个想法是在您的global.asa 中包含常用功能,以便您的应用程序中的所有模块立即使用它们。

【讨论】:

  • 感谢您的输入,这是一个由其他人完成的旧网站,我正在尝试对其进行重新设计,在此期间,我想稍微清理一下,但我不是编码员,并且少得多的 asp 用户。
【解决方案2】:

与您在 ASP-classic-land 中的许多前辈一样,您想要的是条件包含,而您遇到的问题是经典 ASP 不执行条件包含。 (原因是#include 指令在页面上的任何脚本被解析之前很久就被处理了。)

有多种解决方法涉及Execute 或其他危险的错误操作命令;搜索“asp conditional include”,你会发现比你讨价还价的更多。但是,在您的情况下,将滑块显示包含在您可以调用或不调用的子例程中可能会更简单。

Slider.html:

<%
Sub DisplaySlider()
    'code to display the slider (probably JavaScript, I'm guessing?)
    %>
    <script ...>
    </script>
    <%
End Sub
%>

其他页面:

<!-- #include virtual="/slider.html" -->
<%
scriptname = Request.ServerVariables("Script_Name")
If InStr(scriptname, "default.asp") > 0 Then
    DisplaySlider
Else
    Response.Write "<div class='spacer-top'></div>"
End If
%>

【讨论】:

  • 谢谢你,我学到了一些新东西......我的意思是关于 asp-classic,而不是你提供的链接,我读了它,并且确实理解了一些,我不是编码器,也不是asp用户。无论如何我尝试了你的建议,但由于不擅长它,我没有得到滑块,间隔 div 工作正常。我尝试将滑块代码放在您说“要显示的代码...”的位置,将其同时保存为 html 和 asp,然后出现错误,尝试将滑块代码放在您放置
  • 这是我将 html 滑块代码放入“显示滑块的代码...”时出现的错误 - Microsoft VBScript 编译错误“800a0400”预期语句 /afz_includes/jumbotron.asp,第 4 行
  • @keneso:Martha 发布的网站 (4Guys) 是一个非常适合学习 Classic ASP 的网站,值得在浏览器中添加书签。
  • @keneso:这可能值得另一个问题。确保发布相关代码。
  • 谢谢。 @Martha 我会提出新问题,请注意。 ;)
猜你喜欢
相关资源
最近更新 更多
热门标签