Отправка события ICalendar клиенту, продолжая выполнять код
Я создал базовое событие календаря, используя DDay.iCal, когда я нажимаю ссылку "Добавить в календарь" , я создаю событие, а затем отправляет его клиенту.
В принципе, мое приложение работает так.
- Пользователь регистрируется.
- Выбирает определенную дату.
- Загружает определенный временной интервал
- Нажмите ссылку "Добавить в календарь"
Отправка события выполняется с помощью 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 на свой код.
Когда вы перенаправляетесь в i-й обработчик, он сразу же всплывает окно загрузки, вы не попадете на пустую страницу, пользователь останется на той же странице.
Ответ 2
Перед отправкой информации об ответе iCal убедитесь, что вы очистили свой ответ (Response.Clear
). Наконец, завершите свой ответ (Response.End
), прежде чем выйдет какой-либо другой контент. С точки зрения конечного использования это приведет к тому же результату использования HttpHandler
без хлопот.