1

今...私はこれを別のページで行うことができますが、したくありません!

プロジェクトに必要な大量の JS ファイルを取得し、それらを圧縮して 1 つのファイルをダウンロードするサービスを作成しようとしていますが、実際には問題ではなく、ダウンロード ビットが期待どおりに動作していません。

ここには次のような多くの例があります: In ASP.NET, how to get the browser to download string content to a file? (C#)

私は(簡略化された)コードを持っています:

Sub Download() Handles button.click
    var AllTheScript as string ="blah blah blah"
    Response.Buffer = True
    Response.Clear()
    Response.ClearContent()
    Response.Write(AllTheScript)
    Response.ContentType = "application/text"
    Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js")
    Response.Flush()
End Sub

明らかに、<asp:button id="button" runat="server"/>私のページにも要素があります。

このボタンをクリックすると、すべてのフェッチ作業が行われ (上には示されていません)、テキスト ファイルが作成され、ダウンロードされます... 素晴らしい...

ただし、ダウンロードする JS ファイルの下部にはmyJavascript.js、ボタンがあったページのすべてのマークアップが含まれています。

Response.ClearContent()私はこれをすべて削除する必要があるという印象を受けましたか?

私は何を間違っていますか?それとも別のページにする必要がありますか?

4

2 に答える 2

2

他の誰かがこの問題に再び遭遇した場合に備えて、私は問題を非常に簡単に解決しました!

必要だったのは

Response.End()

最後に!

したがって、完全な関数は次のようになります。

Sub Download() Handles button.click
    var AllTheScript as string ="blah blah blah"
    Response.Buffer = True
    Response.Clear()
    Response.ClearContent()
    Response.Write(AllTheScript)
    Response.ContentType = "application/text"
    Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js")
    Response.Flush()
    Response.End() '///<<< Final Line Essential!
End Sub
于 2013-10-14T08:44:04.543 に答える