Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET中将XML输出为文件_Asp.net_Vb.net - Fatal编程技术网

在ASP.NET中将XML输出为文件

在ASP.NET中将XML输出为文件,asp.net,vb.net,Asp.net,Vb.net,我无法将XML流发送到客户端浏览器。我已经对此进行了大量研究,一切看起来都是正确的——而且,类似的代码在这个应用程序的早期版本中也可以使用。知道我做错了什么吗 以下代码不会抛出错误,但不会在客户端计算机上下载文件 Public Shared Sub Export(ByVal source As DataTable) Try With Current.Response Dim xml As String

我无法将XML流发送到客户端浏览器。我已经对此进行了大量研究,一切看起来都是正确的——而且,类似的代码在这个应用程序的早期版本中也可以使用。知道我做错了什么吗

以下代码不会抛出错误,但不会在客户端计算机上下载文件

        Public Shared Sub Export(ByVal source As DataTable)

        Try

            With Current.Response


                Dim xml As String = CreateExcelXMLFromDataTable(source.DefaultView)

                .Clear()
                .Buffer = True
                .ContentType = "application/vnd.ms-excel"
                .AddHeader("Content-Disposition", String.Concat("attachment;filename=", "export.xlsx", ";"))
                .AddHeader("Content-Length", xml.Length.ToString)
                .Charset = ""
                .Write(xml)
                .Flush()
                .Close()

            End With


        Catch ex As Exception

            Console.WriteLine(ex.Message.ToString)

        End Try

    End Sub

谢谢

如果在Ajax请求中调用此函数,它将无法工作。您必须进行完整回发才能将文件发送到客户端


您可以使用弹出窗口(
window.open
)或带有下载asp.net页面URL的
iframe
发送文件,而不会在当前页面中导致完全回发,这将调用
导出
功能

你有什么迹象表明这是错误的?是否有错误消息?意外输出?完全没有错误消息。什么都没有,否则我会希望下载一个文件或弹出一个下载对话框。你确定代码正在执行吗?当您调试这个时,会发生什么?请注意,在调试器之外,您将忽略此代码中的所有错误。您希望Console.WriteLine在web应用程序中具体做什么?所以很可能有一个错误,你只是显式地忽略它。是的,我可以一步一步地完成代码。它肯定正在执行,我可以看到xml变量肯定正在填充文本。Console.writeline只是用于调试/开发目的。如果将
.End()
放在
.Close()
之后,会发生什么?下面是一篇关于如何使其工作的好文章。谢谢你们的帮助,伙计们。