2010-11-10 63 views

回答

4

您應該創建一個iCal feed大多數客戶可以訂閱。在您的控制器中使用FileStreamResult將其發佈到客戶端。熟悉ICS規範,它就像這樣開始

BEGIN:VCALENDAR PRODID:-//{Calender of something}//NONSGML v1.0//EN 
VERSION:1.0 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
X-WR-CALNAME:{Name} 
X-ORIGINAL-URL:{The Url obviously} 
X-WR-CALDESC:{Calendar of Events For a new intranet application} 

並以END:VCALENDAR結束。這裏是事件

BEGIN:VEVENT 
DTSTART:20101113 
DTEND:20101115 
DTSTAMP:20101110T154940 
CREATED:20101109T2
LAST-MODIFIED:20101109T2
UID:{unique id} 
SUMMARY:Nanaimo Artwalk 2010 (Free) 
DESCRIPTION:{Description} 
LOCATION:{Location} 
URL:{url} 
END:VEVENT 

現在我不知道ICS格式真的很好,所以你應該更熟悉它。或者,您可以使用an open-source library。當您創建Feed時,將其作爲文件結果寫入。

private static FileResult iCalResult(string ics) 
{ 
    return new FileStreamResult(WriteCal(ics), "text/calendar"); 
} 

private static Stream WriteCal(string ics) 
{ 
    var content = Encoding.ASCII.GetBytes(ics); 
    var stream = new MemoryStream(content); 
    return stream; 
} 
+0

謝謝!我不知道是否有「展望方式」或應該生成iCal。然後我會生成iCal。 – 2010-11-12 14:14:37

+0

有一個Outlook的方式來做到這一點槽交換Web服務託管API,但這是更容易,更多的客戶不可知論者.. – Sevki 2010-11-12 15:26:33

相關問題