如何在ASP.NET MVC中将XML文件发送到客户端

时间:2010-05-25 14:10:40

标签: c# asp.net-mvc xml upload download

在ASP.NET MVC中,我有一个数据库表。我希望在某个视图页面上有一个按钮,如果某个用户单击该按钮,我的应用程序将生成包含数据库中所有行的XML文件。然后,应将包含XML的文件发送到客户端,以便用户看到下载弹出窗口。

同样,我希望允许用户上传一个XML文件,其内容将被添加到数据库中。

让用户上传和下载文件的最简单方法是什么?

感谢所有答案

修改 这是我的方法:

public FileContentResult Download() {
        if(model.Series.Count() < 1) {
            byte[] content = new byte[0];
            return new FileContentResult(content, "Series");
        }
        XmlSerializer serializer = new XmlSerializer(model.Series.FirstOrDefault().GetType());

        MemoryStream xmlStream = new MemoryStream();
        foreach (Series s in model.Series) {
            serializer.Serialize(xmlStream, s);
        }

        byte[] content2 = new byte[xmlStream.Length];
        xmlStream.Position = 0;
        xmlStream.Read(content2, 0, (int) xmlStream.Length);

        return File(content2, "Series");
}

其中model是DataContext。但是这不起作用。当我尝试下载数据时出现此错误:

XML Parsing Error: junk after document element
Location: http://localhost:1399/Xml/Download
Line Number 7, Column 10:</Series><?xml version="1.0"?>
---------^

2 个答案:

答案 0 :(得分:3)

对于下载部分,您可以使用FileStreamResult

This page包含上传和下载示例;看看吧。

答案 1 :(得分:1)

XML文档只能有一个顶级元素。元素结束后,您将无法拥有任何其他内容。看起来好像"</Series>"元素之后“&lt; ?xml version="1.0>",无效。