10

我使用 DDay.iCal 构建了一个基本日历事件,当我单击“添加到日历”链接时,我会生成一个事件,然后将其发送给客户端。

基本上,我的应用程序是这样工作的。

  1. 一个用户登录。
  2. 选择特定日期。
  3. 预订特定时间段
  4. 点击“添加到日历”链接

发送事件是通过使用Response.Write()which 向客户端发送以下内容来完成的:

Response.ContentType = "text/calendar";
Response.AddHeader("Content-disposition", "attachment; filename=appointment.ics");
Response.Write(iCalString);

以上工作正常,但它需要我先预订活动,然后手动预订,然后单击“添加到日历”链接。

我想合并步骤 3 和 4。但是当尝试这样做时,事件预订会保存到数据库中,但屏幕不会刷新。

有没有一种“简单”的方法来解决这个问题?

4

2 回答 2

1

您需要设置一个简单的 HttpHandler 来发布回复,然后在其中执行 Response.Redirect()。

我之前做过类似的工作,将 vcard 格式集成到网站的我们的人员部分。这些文章应该告诉您设置 HttpHandler 所需的一切 - 只需将 vcard 代码替换为您的 ical 代码。

当您重定向到 ical 处理程序时,它会立即弹出下载框,您不会被带到一个空白页面,用户会留在同一页面上。

于 2010-10-30T10:03:56.560 回答
1

确保Response.Clear在发送 iCal 响应信息之前清除您的响应 ( )。最后,Response.End在发出任何其他内容之前结束您的响应 ( )。从最终使用的角度来看,这将产生与使用 an 相同的结果,HttpHandler而无需麻烦。

于 2011-01-19T17:58:37.697 回答