假设我的应用程序左侧有“默认”内容,该内容包含在标题页中:搜索框和登录框。如果用户在搜索页面上,我还想在页面左侧添加搜索过滤器列表(例如品牌,价格);在这种情况下,左侧需要访问给予搜索的参数(例如,关键字搜索“黑色皮椅”);我在搜索页search.asp
上构建了一个相当复杂的查询,而且我不必在左侧内容页面上使用某种巨大的If..Then
语句复制它。
有没有办法做到这一点,并将“追加”其他内容添加到已经包含在页面中的文件中?基本上类似于Ruby on Rails中的content_for,我可以在这个页面上说,将这些内容添加到<div id="left">
节点。我不是真正的经典ASP专家(而且我宁愿不使用它,说实话)但我的老板想要在页面左侧只为搜索页面提供过滤器,以及登录/搜索框(也出现在所有页面上),我不知道如何处理它而不必重新整理整个页面。
答案 0 :(得分:0)
您可以在左侧轻松设置所需内容的div,然后使用客户端javascript切换DIV的可见性。
您的javascript可以检查当前位置,如果它属于要显示该部分的页面列表(如果您构建另一个搜索页面),请将可见性切换为true。
如果你不想在左侧渲染HTML,你可以使用Javascript动态地将HTML写入DIV。
或者,您可以在搜索页面中设置DIV,并使用CSS将其与页面左侧对齐。
答案 1 :(得分:0)
在ASP中,您可以使用以下方法获取当前路径和文件:
pagePath = Request.ServerVariables("PATH_INFO")
你可以拆分字符串,抓住最后一个元素。所以选择一个案例并根据文件名吐出适当的内容:
select case pageName
case "search.asp"
...
case "products.asp"
...
case else
...
end select
答案 2 :(得分:0)
任何include都可以使用以前函数中收集的变量。例如,如果您在其他任何内容之前检索搜索关键字,那么您可以更新稍后出现的任何代码中的值,即使在包含文件中也是如此,因为这些包含的内容只是包含在整个页面中的更多代码,除了它已包含在插入内容中,因为它可能与其他页面相同。
或者您可以运行函数来处理这些变量,例如查找相关结果。