Как заменить страницу по дате

#c# #asp.net

#c# #asp.net

Вопрос:

Есть способ заменить страницу в определенную дату и время?

пример: я хочу, чтобы в пятницу default.aspx отключился, а другая страница превратилась в default.aspx … а затем в воскресенье вернется первый default.aspx.

у кого-нибудь есть идея? может быть, будет лучше изменить отображение по умолчанию.aspx. мне нужно заменить экран на «мы отключены на некоторое время» или что-то в этом роде.

я имею в виду, что кнопка сделает это…

использование c #. asp.net

Ответ №1:

Ну, вы могли бы создать вторую страницу, на которую ваши пользователи переходили бы, когда страница закрыта, и назвать ее чем-то вроде ApplicationDown. Затем вы могли бы запрограммировать перенаправление на эту страницу только для пятницы и субботы.

             if ((DateTime.Now.DayOfWeek == DayOfWeek.Friday amp;amp; DateTime.Now.Hour >= 17) || 
                DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
            {
                Response.Redirect("ApplicationDown.aspx");
            }
  

Кажется странным способом выполнения действий, но это сработало бы для вас, если бы вы поместили его в начало загрузки страницы Default.aspx.

Комментарии:

1. что ж, отлично, я могу сделать это на главной странице, и тогда весь сайт будет работать правильно (все страницы, на которых есть эта главная страница)? пример: если кто-то помнит, что на сайте есть ссылка: www.mysite.com/bla.aspx и попробуйте ввести эту ссылку, а в bla.aspx есть masterpage — она отключится, верно?

2. Да, вы можете сделать это таким образом «(DateTime.Now.DayOfWeek == День недели. Пятница amp;amp; Дата-время.Сейчас. Час > = 17)» Где число — это час, в который вы хотите закрыть (в 24-часовом формате). Я обновил код в своем ответе, чтобы показать это.

Ответ №2:

Одним из способов было бы превратить ваше содержимое, зависящее от даты, в UserControl и отображать разные содержимое на странице в зависимости от даты.

Ответ №3:

Просто поместите файл app_offline.htm в корневой папке вашего приложения.

Комментарии:

1. Но разве ему не пришлось бы делать это вручную каждую пятницу? Похоже, он хотел бы более динамичный подход. Я никогда не слышал о app_offline.aspx, так что на данный момент это совершенно ново для меня, поэтому, пожалуйста, простите за невежество.

Ответ №4:

Если вам просто нужно отобразить сообщение down, поместите это в свою разметку (не в коде):

 <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <%if (DateTime.Today.DayOfWeek == DayOfWeek.Friday)
      { %>
        We're down.
    <%} else{ %>
        Insert regular site content here
    <%} %>
</asp:Content>
  

Мой находится в контенте, но просмотр этого должен дать вам представление о том, как это работает. Или вы также могли бы сделать это:

 if (DateTime.Today.DayOfWeek == DayOfWeek.Friday)
    Response.Redirect("downmessage.aspx");
  

Комментарии:

1. Конечно, это предполагает, что у вас уже есть способ закрыть ваш сайт, все еще позволяя пользователям перейти к default.aspx.

Ответ №5:

Поместите этот код в default.aspx или его код за:

if(DateTime.Now > new DateTime(2011, 4, 23) amp;amp; DateTime.Now < new DateTime(2011, 4, 30) )
Response.Redirect("Down.aspx");

Итак, если мы находимся между 2011-04-23 и 2011-04-30, она будет перенаправлена на «Down.aspx»