4

データベースからファイルを取得するために使用するページがあり、URL の形式に応じて、ダウンロードを要求するか、ブラウザーにストリーミングします。これは正常に機能していますが、ページ タイトルを設定しようとすると何も機能せず、デフォルトで URL のドメイン名になります。

Response.OutputStream.Write(buffer, 0, bytesRead)これは、バイナリファイルを使用してブラウザに送信しているため、オンラインで見つけた他の何かによると、「バッファをバイナリファイルで埋めているため、タイトルを制御できない」ため、これが発生する可能性が最も高いことに気づきました。

HTML がないため、タイトル タグがないバイナリ ファイルでバッファをいっぱいにしています。この時点で、ブラウザで Title タグを制御できるかどうかはわかりません。今持っているページをPDFで確認させてください。少なくとも私が見ている例では、これができるようには見えません。別の PDF を開いていましたが、それは直接ローカル ファイルであり、ブラウザで Title タグが設定されていました。これが PDF に埋め込まれているかどうかはわかりません。

ここにあります: http://forums.asp.net/t/1088814.aspx/1

ページタイトルを設定するためにすべての通常の場所を試しました:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="FileServer.aspx.vb" Inherits="FileServer" Title="Title goes here" %>

また

<head runat="server">
    <title>Title goes here</title>
</head>

また

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim FileNumber As String = RouteData.Values("FileNumber")
        Dim Disposition As String = RouteData.Values("Disposition")

        If FileNumber IsNot Nothing Then
            Title = "Title goes here"
            ServeFile(FileNumber, Disposition)
        End If
End Sub

このタイトルを設定する方法はありますか、それとも運が悪いのでしょうか?

4

1 に答える 1

4

ブラウザへのファイル送信と同時にタイトルを設定することはできません。ブラウザが「ページ」タイトルを変更するには、実際に HTML ドキュメントをレンダリングする必要があります (つまり、ページをレンダリングする必要があります)。

この状況では、有効な HTML コンテンツを送信していないため、送信しているコンテンツがダウンロードされます。

これを行うには、一種の「バウンス」を行う必要があります。タイトルやその他の必要なコンテンツを表示するページ (つまり、aspx ページ) にリダイレクトします。そして、そのページからブラウザを「バウンス」してダウンロードします。

于 2012-08-21T13:55:54.760 に答える