加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 如何为Outlook创建“互联网日历订阅”?

发布时间:2020-12-16 07:05:42 所属栏目:asp.Net 来源:网络整理
导读:目前,用户添加了“新的互联网日历”,但它是ICS文件的一次性下载.我希望用户单击按钮以将其个人日历添加为Outlook的订阅.我想自动更新 “internet calendar subscription”. 与SharePoint一样,名为“连接到Outlook”的按钮将您正在查看的日历添加为自动同步日
目前,用户添加了“新的互联网日历”,但它是ICS文件的一次性下载.我希望用户单击按钮以将其个人日历添加为Outlook的订阅.我想自动更新 “internet calendar subscription”.

与SharePoint一样,名为“连接到Outlook”的按钮将您正在查看的日历添加为自动同步日历.

解决方法

Creating iCals in C#和 this CodeProject post告诉我你应该使用 DDay iCal Library.

DDay.iCal is an iCal (RFC 5545) class library for .NET 2.0 and above,Silverlight. It aims at being as RFC 5545 compliant as possible,while targeting compatibility with popular calendaring applications,like Apple iCal,Outlook 2007,etc.

一些sample code的iCal MVC DDay.iCal

public ActionResult iCalendar(string DownloadFileName)
{
    DDay.iCal.iCalendar iCal = new DDay.iCal.iCalendar();

    Event evt = iCal.Create<Event>();
    evt.Start = iCalDateTime.Today.AddHours(8);
    evt.End = evt.Start.AddHours(18); // This also sets the duration
    evt.Description = "The event description";
    evt.Location = "Event location";
    evt.Summary = "18 hour event summary";

    evt = iCal.Create<Event>();
    evt.Start = iCalDateTime.Today.AddDays(5);
    evt.End = evt.Start.AddDays(1);
    evt.IsAllDay = true;
    evt.Summary = "All-day event";

    ISerializationContext ctx = new SerializationContext();
    ISerializerFactory factory = new DDay.iCal.Serialization.iCalendar.SerializerFactory();
    IStringSerializer serializer = factory.Build(iCal.GetType(),ctx) as IStringSerializer;

    string output = serializer.SerializeToString(iCal);
    var contentType = "text/calendar";
    var bytes = Encoding.UTF8.GetBytes(output);

    return File(bytes,contentType,DownloadFileName);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读