2011-11-05 93 views
1

我想在用户在浏览器中查看ashx文件时更改打开窗口的“页面标题”。用户点击将在浏览器的新选项卡中打开的文档,并显示文档(即Word,Excel,PDF等)。现在发生的事情是,当我希望标题显示“New Document.pdf”或“New Document”而不显示ashx的网址时,页面标题显示的内容类似“file.ashx?id = 5”文件。如何为ashx文件设置页面标题?

我已经研究过通过头文件设置文件名,该文件可以正常工作,但文件被下载而不是简单地在broser窗口中打开。这不是我想要的理想行为。

我知道这可能是不可能的,但我想我会检查。

感谢您的帮助。

+0

我不相信这是可能的。 –

回答

6

对于页面标题:我只能对Internet Explorer说话,但是当您显示新窗口时,Internet Explorer要求始终显示标题栏(有关更多详细信息,请参阅MSDN文章About Window Restrictions)。内联查看文件时的问题是,您不会将任何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(); 
+0

他想修改浏览器中的。 – Phill

+0

谢谢,更新了答案以提供有关标题的其他信息。 –

+0

将该编辑移动到答案的顶部,因为这是OP所要求的,我会+1 – sq33G

相关问题