gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 05:05:44 26 4
gpt4 key购买 nike

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

我研究过通过 header 设置文件名,这确实有效,但文件是下载的,而不是简单地在浏览器窗口中打开。那不是我想要的行为。

我知道这可能是不可能的,但我还是想检查一下。

感谢您的帮助。

最佳答案

对于页面的标题:我只能说 Internet Explorer,但是当您显示新窗口时,Internet Explorer 要求始终显示标题栏(有关更多详细信息,请参阅 MSDN 文章 About Window Restrictions)。在线查看文件时的问题是您不会将任何 HTML 发送回页面,因此无法通过此方法更改标题。

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

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

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();

关于c# - 如何为 ashx 文件设置页面标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com