繁体   English   中英

如何为ashx文件设置页面标题?

[英]How to set a page title for an ashx file?

当用户在浏览器中查看ashx文件时,我想更改打开的窗口的“页面标题”。 用户单击将在浏览器的新选项卡中打开的文档,然后显示该文档(即Word,Excel,PDF等)。 现在发生的是,页面标题显示的内容类似于“ file.ashx?id = 5”,而我宁愿标题显示的内容类似于“ New Document.pdf”或“ New Document”,而不显示ashx的网址文件。

我研究了通过标头设置文件名的方法,该方法确实起作用,但是下载了文件,而不是简单地在broser窗口中打开文件。 那不是我想要的行为。

我了解这可能无法实现,但是我还是想检查一下。

谢谢您的帮助。

对于页面标题:我只能与Internet Explorer对话,但是当您显示新窗口时,Internet Explorer要求始终显示标题栏(有关更多详细信息,请参见MSDN 关于窗口限制的文章)。 内联查看文件时的问题是您没有将任何HTML发送回该页面,因此无法通过此方法更改标题。

我知道我们已经尝试了几种不同的方法,但是决定对于我们的用户群,标题栏中没有用户可读的值是可以的。 如果这对您很重要,那么我认为您唯一的选择是基于框架的解决方案,其中您的ashx页面被嵌入框架(或iframe)中,而标题页则由另一框架(或其中一部分)中的内容控制如果您使用iframe,则该页面)。

要在浏览器中查看文件而不是下载文件:您需要将Response ContentType设置为文件的相应MimeType(即,对于PDF文件为“ application / pdf”),并添加Content-Disposition标头,以指定文件为内联打开和用户的文件名。 您还应确保从响应中清除其他内容和标题。

this.Context.Response.ClearContent();
this.Context.Response.ClearHeaders();
this.Context.Response.ContentType = "application/pdf";
this.Context.Response.AddHeader("Content-Disposition", "inline; filename=mytest.pdf");
this.Context.Response.TransmitFile(sLocalFileName);
this.Context.Response.Flush();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM