3

次のコードを使用して 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 の説明をそのまま表示するにはどうすればよいでしょうか。

4

1 に答える 1

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)
于 2012-11-16T09:57:11.967 に答える