2010-10-26 3 views
10

Я создал базовое событие календаря, используя DDay.iCal, когда я нажимаю ссылку «Добавить в календарь», я создаю событие, а затем отправляет его клиенту.Отправка события ICalendar клиенту, продолжая выполнять код

В основном, мое приложение работает именно так.

  1. входа пользователя в систему.
  2. Выбор конкретной даты.
  3. Книги конкретный временной интервал
  4. щелкает «Добавить в календарь» ссылка

Отправка события осуществляется с помощью Response.Write() который посылает следующее клиенту:

Response.ContentType = "text/calendar"; 
Response.AddHeader("Content-disposition", "attachment; filename=appointment.ics"); 
Response.Write(iCalString); 

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

Я хочу объединить шаги 3 и 4. Но при попытке сделать это бронирование событий будет сохранено в базе данных, но экран не обновится.

Есть ли «простой» способ обойти это?

ответ

1

Вам нужно настроить простой HttpHandler, чтобы опубликовать ответ, а затем создать Response.Redirect().

Я уже делал подобную работу, интегрируя формат vcard в раздел наших людей на веб-сайте. Эти статьи должны сообщать вам все, что вам нужно, чтобы настроить HttpHandler - просто замените код vcard на свой код.

При перенаправлении в ческой обработчик будет просто мгновенно всплывающие окна загрузки, вы не будете принимать на пустой странице, пользователь остается на том же стр.

1

Перед отправкой информации об ответе iCal убедитесь, что вы очистили свой ответ (Response.Clear). Наконец, завершите свой ответ (Response.End), прежде чем выйдет какой-либо другой контент. С точки зрения конечного использования это приведет к тому же результату использования HttpHandler без хлопот.

Смежные вопросы