0

私は ASCX にリンクを持っています。私がやりたいのは、ポップアップを表示せずにファイルのダウンロード プロンプトを表示することです。

例:

  <a href="download.aspx">Download</a>

次に、 Download.aspx Page_Load に次のものがあります。

    Dim dataAs String = "test"

    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

これは正しい方法ですか?私の他の方法は、コードをASCXのポストバックに入れることでした

<asp:button text="download" id="theButton" />

.vb

Public Sub theButton_Click()
    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

End Sub
4

1 に答える 1

-1

コンテンツの配置は、添付またはインラインのいずれかです。例:

Response.AddHeader("Content-Disposition", "inline")

添付ファイルにすると、ブラウザは通常、ファイルを開くか保存するかをユーザーに尋ねるポップアップを表示します。HTTP 応答を返した後の処理は、ブラウザーが制御します。デフォルトのファイル名はあなたが提案したものかもしれませんし、ブラウザはあなたのファイル名を完全に無視して ascx ファイル名を使うかもしれません (私が遭遇したとき、Firefox はこれをバグとしてリストしました、IE はそれを「機能」と見なしたようです)。

ただし、インラインにすると、「テキスト/プレーン」コンテンツ タイプがポップアップなしでブラウザー画面にダンプされることがよくあります。それはあなたが望むものですか?

于 2013-05-22T14:20:48.260 に答える