我想在我的ASP.NET应用程序中生成一个ICS文件(iCalendar),然后自动打开它而不显示文件对话框“打开/保存/取消”。
这个生成的文件将由用户对这些ics文件的默认应用程序打开。
我试过了:
String sICSPath = Server.MapPath(".") + @"\Files\Test.ics";
String sFullText = File.ReadAllText(sICSPath);
sFullText = sFullText.Replace("#NAME#", "MyName");
this.Response.ContentType = "Content-Type: text/Calendar";
this.Response.AddHeader("Cache-Control", "no-cache, must-revalidate");
this.Response.AddHeader("Pragma", "no-cache");
this.Response.AddHeader("Content-Disposition", "inline; filename=calendar.ics");
this.Response.Write(sFullText);
this.Response.End();
我尝试了其他标题,例如Content-Type : application/outlook
或Content-Disposition : attachment;
而不是Content-Disposition : inline;
....但没有成功。
此代码用于通过对话框打开ICS。但我会自动打开它而不显示此对话框。
如何做到这一点?
答案 0 :(得分:3)
你做不到。用户的浏览器设置确定他们是否会看到保存对话框,或者是否直接保存并打开。
想象一下,如果假设它按照您的意愿运作 - 这将是一个巨大的安全漏洞。