asp.net-mvc – 谷歌日历无法读取ICalendar.

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 谷歌日历无法读取ICalendar.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
操作系统:WinXP
您用于访问Google日历的程序和版本(FF3.5):

我正在开发一个脚本(基于我在网上找到的现有vCal ASP.NET类)来生成.ics文件.导入到Outlook 2003时,此文件可以正常工作.当我尝试导入到Google日历时,出现以下错误

无法导入事件:无法处理您的iCal / CSV文件..

我不太了解vCal格式或语法,但一切看起来都不错.我将在下面发布示例测试日历.ics:

  1. BEGIN:VCALENDAR
  2. PRODID:-//jpalm.se//iCalendar example with ASP.NET MVC//EN
  3. VERSION:2.0
  4. CALSCALE:GREGORIAN
  5. METHOD:PUBLISH
  6. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  7. BEGIN:VEVENT
  8. DTSTART:20100304T000000Z
  9. DTEND:20100304T000000Z
  10. TRANSP:OPAQUE
  11. SEQUENCE:0
  12. UID:7c9d6dd7-41f2-4171-8ae4-35820974efa4
  13.  
  14. DESCRIPTION:uba:Project20100321:sagar .
  15.  
  16. SUMMARY:First Milestone
  17. END:VEVENT
  18. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  19. BEGIN:VEVENT
  20. DTSTART:20100330T230000Z
  21. DTEND:20100330T230000Z
  22. TRANSP:OPAQUE
  23. SEQUENCE:0
  24. UID:8a982519-b99b-429a-8dad-c0f95c50d0e6
  25.  
  26. DESCRIPTION:uba:Project20100321:imanage2010 pm
  27.  
  28. SUMMARY:upcoming milestones
  29. END:VEVENT
  30. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  31. BEGIN:VEVENT
  32. DTSTART:20100329T230000Z
  33. DTEND:20100329T230000Z
  34. TRANSP:OPAQUE
  35. SEQUENCE:0
  36. UID:588750a1-6f10-4b5d-8a51-3f3818024726
  37.  
  38. DESCRIPTION:uba:Project20100321:sagar .
  39.  
  40. SUMMARY:test
  41. END:VEVENT
  42. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  43. BEGIN:VEVENT
  44. DTSTART:20100407T230000Z
  45. DTEND:20100407T230000Z
  46. TRANSP:OPAQUE
  47. SEQUENCE:0
  48. UID:36eaa726-a0a0-40a1-ba7c-09857f8ed006
  49.  
  50. DESCRIPTION:uba:Project20100321:imanage2010 pm
  51.  
  52. SUMMARY:Rad apps devs
  53. END:VEVENT
  54. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  55. BEGIN:VEVENT
  56. DTSTART:20100408T125632Z
  57. DTEND:20100408T125632Z
  58. TRANSP:OPAQUE
  59. SEQUENCE:0
  60. UID:8521ad53-916a-43cc-8eeb-42c1b3d670d3
  61.  
  62. DESCRIPTION:uba:Project20100321:imanage2010 pm
  63.  
  64. SUMMARY:this is a test ms
  65. END:VEVENT
  66. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  67. BEGIN:VEVENT
  68. DTSTART:20100415T125643Z
  69. DTEND:20100415T125643Z
  70. TRANSP:OPAQUE
  71. SEQUENCE:0
  72. UID:e4b295d8-2271-4393-9899-3e9c858f4e8c
  73.  
  74. DESCRIPTION:uba:Project20100321:imanage2010 pm
  75.  
  76. SUMMARY:Test msssss
  77. END:VEVENT
  78. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  79. BEGIN:VEVENT
  80. DTSTART:20100430T055201Z
  81. DTEND:20100430T055201Z
  82. TRANSP:OPAQUE
  83. SEQUENCE:0
  84. UID:1e464698-1064-4cb2-8166-2a843b63ca5a
  85.  
  86. DESCRIPTION:uba:Project20100321:imanage2010 pm
  87.  
  88. SUMMARY:this is a new milestones for testing on 30th april
  89. END:VEVENT
  90. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  91. BEGIN:VEVENT
  92. DTSTART:20100731T093917Z
  93. DTEND:20100731T093917Z
  94. TRANSP:OPAQUE
  95. SEQUENCE:0
  96. UID:5262ef58-73bc-4d66-a207-4e884e249629
  97.  
  98. DESCRIPTION:uba:Project20100321:imanage2010 pm
  99.  
  100. SUMMARY:555555555555555555
  101. END:VEVENT
  102. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  103. BEGIN:VEVENT
  104. DTSTART:20100328T230000Z
  105. DTEND:20100328T230000Z
  106. TRANSP:OPAQUE
  107. SEQUENCE:0
  108. UID:f654262d-714e-41d9-9690-005bb467f8aa
  109.  
  110. DESCRIPTION:uba:Untitled project:imanage2010 pm
  111.  
  112. SUMMARY:first milestone
  113. END:VEVENT
  114. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  115. BEGIN:VEVENT
  116. DTSTART:20100401T095537Z
  117. DTEND:20100401T095537Z
  118. TRANSP:OPAQUE
  119. SEQUENCE:0
  120. UID:3f4a6c16-f460-457d-a281-b4c010958796
  121.  
  122. DESCRIPTION:uba:ProjectIcal:imanage2010 pm
  123.  
  124. SUMMARY:new ms ical
  125. END:VEVENT
  126. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  127. BEGIN:VEVENT
  128. DTSTART:20100331T230000Z
  129. DTEND:20100331T230000Z
  130. TRANSP:OPAQUE
  131. SEQUENCE:0
  132. UID:e5bf28d1-3559-48e9-90f8-2b5233489a13
  133.  
  134. DESCRIPTION:uba:ProjectIcal:imanage2010 pm
  135.  
  136. SUMMARY:new ms 2 ical
  137. END:VEVENT
  138. END:VCALENDAR

生成上面代码的源代码就是mvc视图::

  1. <%@ Import Namespace ="iManageProjectPM.Controllers" %>
  2. <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<iCalendar>"%>
  3. BEGIN:VCALENDAR
  4. VERSION:2.0<%if (Model.Events.Count > 1)
  5. {%>
  6. CALSCALE:GREGORIAN
  7. METHOD:PUBLISH<%}%>
  8. X-MS-OLK-FORCEINSPECTOROPEN:TRUE
  9. <%foreach(var evnt in Model.Events){%>
  10. BEGIN:VEVENT
  11. DTSTART<%=Model.GetTimeString(evnt.StartTime)%>
  12. DTEND<%=Model.GetTimeString(evnt.EndTime)%>
  13. TRANSP:OPAQUE
  14. SEQUENCE:0
  15. UID:<%=evnt.UID%>
  16. DESCRIPTION:<%=evnt.Desc%>
  17. SUMMARY:<%=evnt.Title%>
  18. END:VEVENT<%}%>
  19. END:VCALENDAR

解决方法

ical Feed的问题在于,不同的日历对于不同的东西都很挑剔,而且至少在我看来,这个规范有点难以理解.但是,Kanzaki在为像我这样的程序员制定规范方面做得很好.

现在,你的Feed Feed还需要精确到换行符(Apple的不会导入最后错误的换行符)并且我发现这3个验证器的组合效果最好:

>最基本的:http://severinghaus.org/projects/icv/?url=
>更好:http://icalvalid.cloudapp.net/Default.aspx
>最严格:http://ical-validator.herokuapp.com/validate/

最严格的验证器实际上对我有误报(即,它根据规范报告了实际上没有错误错误),但是前两个没有发现错误,这就是为什么我建议通过所有三个运行您的Feed他们

猜你在找的asp.Net相关文章