0

我在 VS2012 中创建了一个新的 ASP.NET MVC 4 应用程序。目标是 .NET 4.5。

我使用一个方法创建了一个 CalendarController ApiController,该方法返回一个带有符合 iCal 规范的文本内容的 HttpResponseMessage。

我希望从如下所示的 URL 提供此方法:

http://www.example.com/api/calendar/mycalendar.ics

但我无法创建适当的路由配置来实现这一点。

我可以让它工作:

http://www.example.com/api/calendar/mycalendar

但我需要 .ics 扩展名。

为什么我需要您可能会问的扩展程序。答案是 iOS 将带有 .ics 扩展名的 URL 解释为“订阅”日历的签名。如果没有扩展,它会将日历解释为一组被复制的事件,并且不会创建“订阅”。

任何帮助表示赞赏

4

1 回答 1

0

具体来说,这两件事在一起就是你所需要的

确保您的路线被定义为具有自定义扩展名(.ics)

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}.ics",
    defaults: new { controller = "Home", action = "Index"}
);

将 web.config 设置为通过您的应用程序运行每个请求,而不仅仅是无扩展名 uri

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
于 2013-05-05T08:29:08.207 回答