我们使用以下代码创建了一个vcs文件。
Dim mstream As New MemoryStream
Dim writer As New StreamWriter(mstream)
writer.AutoFlush = True
GetvCalendarText(writer)
Response.Clear()
Response.AppendHeader("Content-Disposition", "attachment; filename=Event" & eventID & ".vcs")
Response.AppendHeader("Content-Length", mstream.Length.ToString)
Response.ContentType = "application/download"
Response.BinaryWrite(mstream.ToArray)
Response.End()
GetCalendarText方法
Dim body As String = <b>New event</b>
writer.WriteLine("BEGIN:VCALENDAR{0}", vbCrLf)
writer.WriteLine("VERSION:1.0{0}", vbCrLf)
writer.WriteLine("BEGIN:VEVENT{0}", vbCrLf)
writer.WriteLine("DTStart:{0}{1}", DateTime.Now.ToString("yyyyMMddTHHmm00Z"), vbCrLf)
writer.WriteLine("DTEnd:{0}{1}", DateTime.Now.AddHours(2).ToString("yyyyMMddTHHmm00Z"), vbCrLf)
writer.WriteLine("DESCRIPTION:{0}", body)
writer.WriteLine("X-ALT-DESC;FMTTYPE=text/html:{0}", body)
writer.WriteLine("SUMMARY;ENCODING=QUOTED-PRINTABLE:{0}{1}", Test event, vbCrLf)
writer.WriteLine("PRIORITY:3{0}", vbCrLf)
writer.WriteLine("END:VEVENT{0}", vbCrLf)
writer.WriteLine("END:VCALENDAR{0}", vbCrLf)
它正在生成vcs文件,并在打开文件时在Outlook 2010中打开主题,开始时间和结束时间以及正确的值。
我们给出的描述是html格式,但它以纯文本显示。
那么我们如何才能显示html描述。
答案 0 :(得分:2)
我尝试以vCalendar格式添加html描述,但找不到任何正确的方法来执行此操作。
最后将我们的vCalendar格式更改为iCalendar,它允许显示html说明。
我们删除了说明行,即writer.WriteLine("DESCRIPTION:{0}", body)
现在它显示了html格式化的描述。
以下部分也发生了变化。
Response.AppendHeader("Content-Disposition", "attachment; filename=Event" & eventID & ".ics")
和
writer.WriteLine("VERSION:2.0{0}", vbCrLf)