2010-10-26 11 views
10

Ho creato un evento di calendario di base utilizzando DDay.iCal, quando faccio clic sul link "Aggiungi al calendario" produco un evento e quindi lo invio al client.Invio dell'evento ICalendar al client mentre si continua a eseguire il codice

Fondamentalmente, la mia applicazione funziona così.

  1. A utente accede.
  2. di selezionare una data specifica.
  3. Libri una fascia oraria specifica
  4. Clic "Aggiungi al calendario" collegamento

Invio caso viene fatto utilizzando Response.Write() che invia il seguente al client:

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

Le opere di cui sopra pinne ma mi richiede di prenotare prima l'evento quindi manualmente e quindi fare clic sul collegamento "Aggiungi al calendario".

Voglio unire i passaggi 3 e 4. Ma quando si tenta di farlo, la prenotazione dell'evento viene salvata nel database ma lo schermo non viene aggiornato.

C'è un modo "semplice" per aggirare questo?

risposta

1

È necessario impostare un HttpHandler semplice per inviare la risposta e quindi eseguire un Response.Redirect() in esso.

Ho già svolto un lavoro simile prima con l'integrazione del formato vcard in una sezione del nostro sito per persone. Questi articoli dovrebbero dirti tutto il necessario per configurare HttpHandler - basta sostituire il codice vcard con il tuo codice ical.

Quando si reindirizza nel gestore iCal sarà solo istantaneamente pop-up box download, è solito essere adottate per una pagina vuota, l'utente viene lasciato sullo stesso pagina.

1

Assicurarsi di cancellare la risposta (Response.Clear) prima di inviare le informazioni di risposta iCal. Infine, terminare la risposta (Response.End) prima che possa essere emesso qualsiasi altro contenuto. Dal punto di vista dell'utilizzo finale, questo produrrà lo stesso risultato dell'uso di HttpHandler senza problemi.

Problemi correlati