если страница по умолчанию, тогда включите, если не по умолчанию, то

Я читал подобные вопросы, но ни один из них не работает для меня.

У меня есть сайт asp, я думаю, классический (даже не знаю разницы между классикой и сетью), с несколькими страницами, все с расширением asp, и некоторые html включают, один из них - слайдер, который я хочу отображать только на домашней странице (default.asp), а если не по умолчанию, то добавьте в разметку div.

Я знаю, что следующее неверно, но просто чтобы лучше объяснить мою потребность.

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

person keneso    schedule 24.02.2016    source источник
comment
Если ваши файлы заканчиваются на .asp, значит, вы имеете дело с asp-classic. Файлы ASP.net заканчиваются на .aspx.   -  person Martha    schedule 25.02.2016


Ответы (2)


Как и многие из ваших предшественников в стране классики ASP, вам нужны условные включения, и проблема, с которой вы столкнулись, заключается в том, что классический ASP не делает условных включений. (Причина этого в том, что директива #include обрабатывается задолго до того, как будет проанализирован какой-либо скрипт на странице.)

Существуют различные обходные пути, включающие Execute или другие опасные команды; поищите "условное включение ASP", и вы найдете больше, чем рассчитывали за. Однако в вашем случае может быть проще включить отображение ползунка в подпрограмму, которую вы можете вызывать или нет.

Слайдер.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
%>
person Martha    schedule 25.02.2016
comment
Спасибо, я узнал кое-что новое ... Я имею в виду asp-classic, а не ту ссылку, которую вы любезно дали, я прочитал ее и кое-что понял, я не кодер и не пользователь asp. Во всяком случае, я попробовал ваше предложение, но, возможно, из-за того, что я не умею это делать, я не получаю ползунок, разделитель разделителя работает нормально. Я попытался поместить код ползунка туда, где вы говорите «код для отображения ...», сохранил его как в формате html, так и в формате asp и получил ошибку, попытался поместить код ползунка в то место, где вы поместили «скрипт», и ничего не работает. К вашему сведению, код ползунка - это просто html карусели начальной загрузки, поэтому нет сценария или чего-то еще. - person keneso; 25.02.2016
comment
Это ошибка, которую я получаю, когда помещаю код ползунка html в «код для отображения ползунка...» — ошибка компиляции Microsoft VBScript «800a0400». Ожидаемый оператор /afz_includes/jumbotron.asp, строка 4 ‹div class=container› - person keneso; 25.02.2016
comment
@keneso: Сайт, который разместила Марта (4Guys), является очень хорошим сайтом для изучения классического ASP, который заслуживает закладки в вашем браузере. - person Paul; 25.02.2016
comment
@keneso: это, вероятно, стоит другого вопроса. Не забудьте опубликовать соответствующий код. - person Martha; 25.02.2016
comment
Спасибо. @Марта, я открою новый вопрос, пожалуйста, следите за ним. ;) - person keneso; 25.02.2016
comment
Спасибо. @Paul Как сказал, я читал это, но для понимания и изучения требуется немного больше;) - person keneso; 25.02.2016
comment
Новый вопрос здесь stackoverflow.com/questions/35633558/ - person keneso; 25.02.2016

Марта в ударе.

Чтобы дополнить ее ответ, я чувствую, что должен указать, что здесь в игру вступает дизайн системы. Старайтесь, чтобы ваши модули были небольшими и лаконичными, ориентируя их функциональность на определенный аспект требований вашего приложения. Например:

  • один для работы с вашим уровнем данных
  • один, чтобы иметь дело с более сложной обработкой формы
  • один, чтобы иметь дело с бла

Вы поняли идею.

Другая идея состоит в том, чтобы включить общие функции в ваш global.asa, чтобы они были мгновенно доступны для всех модулей вашего приложения.

person Paul    schedule 25.02.2016
comment
Спасибо за вклад, это старый сайт, сделанный кем-то другим, и я пытаюсь изменить его стиль, и, пока он на нем, думал немного его почистить, но я не кодер и тем более не пользователь asp. - person keneso; 25.02.2016