我想下载我在用户系统上使用 XmlWriter.Create() 创建的 C# 文件 XML

I want to download XML file in C# which I created using XmlWriter.Create() on user's system

我有一种创建 XML 文件并将其保存到所需文件路径的方法。它工作得很好。但我面临的问题是我必须允许用户下载此文件,但它会下载到给定文件路径上的服务器,而不是用户系统上。

我有以下相同的代码

        var dateString1 = DateTime.Now.ToString("yyyyMMddHHmmss");

        XmlWriterSettings settings = new XmlWriterSettings
        {
            Indent = true,
            IndentChars = (" "),
            ConformanceLevel = ConformanceLevel.Fragment,
            CloseOutput = true,
            OmitXmlDeclaration = true
        };

        using (XmlWriter writer = XmlWriter.Create(filePath + "bill" + dateString1 + ".xml", settings))
        {                
            writer.WriteStartElement("HEADER");
            .......Some more Code..............
            writer.WriteEndElement(); //HEADER
            writer.Flush();
        }
        return Json(1, JsonRequestBehavior.AllowGet);

我需要生成的文件在用户请求时自动下载到用户的系统上,并且没有生成其他文件。

谢谢。

在你的控制器中:

var fileContent = System.IO.File.ReadAllBytes(filePath + "bill" + dateString1 + ".xml");
return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");

更新。不创建文件:

byte[] fileContent;
using (var ms = new MemoryStream())
{
    using (XmlWriter writer = XmlWriter.Create(ms, settings))
    {
        writer.WriteStartElement("HEADER");
        //.......Some more Code..............
        writer.Flush();
    }
    fileContent = ms.GetBuffer();
}

return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");