1

ASP.NET Web フォームアプリケーションがあります。ユーザーがXML ファイルをダウンロードできるようにするダウンロード リンクを作成したいと考えています。ただし、ファイルをサーバーに保存する必要はありません。

私のaspxファイルには、ダウンロードリンクがあります(GridView内に配置されています):

 <asp:HyperLinField Text="Download" DataNavigateUrlFormatString="download.aspx?ProductId={0}" DataNavigateUrlFields="ProductId">

download.aspx.vbページ:

Dim productId As String = Request.QueryString("productId")
Dim xmlDoc As String = _ProductServices.GetXmlDocPerId(productId)
Dim xdoc As XmlDocument = New XmlDocument()
xdoc.LoadXml(xmlLicense)

ここで、ファイルを作成し、XML コンテンツを内部に配置して、サーバーに保存せずにユーザーに配信したいと考えています。MemoryStreama と aを組み合わせて使用​​しStreamReaderますか?

4

2 に答える 2

4

次のように簡単にできます。

Private Sub SendResults()
         'Write the XML for the DataSet.
         Page.Response.ContentType = "text/xml"
         Page.Response.Output.Write(xmlContentAsString)
         Page.Response.End()
    End Sub

基本的に、応答の出力タイプを変更し、xmldocument コンテンツを出力に渡します。システムに実際にファイルを作成するのではなく、クライアントに応答をストリーミングします。

于 2012-08-28T15:46:47.297 に答える
3

ファイルを作成する必要はありませんXmlDocument。ブラウザに直接出力できる XML コンテンツがすでに にあります。

テストされていない例:

Response.ContentType = "application/xml"
Response.Clear()

xdoc.Save(Response.OutputStream)
Response.Flush()

アップデート:

ブラウザーにダウンロードcontent-dispositionダイアログを表示させるには、ヘッダーを追加するだけです。

Response.AddHeader("Content-Disposition", "attachment; filename=some_name.xml");
于 2012-08-28T15:47:02.167 に答える