在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"?>
---------^
答案 0 :(得分:3)
对于下载部分,您可以使用FileStreamResult
This page包含上传和下载示例;看看吧。
答案 1 :(得分:1)
XML文档只能有一个顶级元素。元素结束后,您将无法拥有任何其他内容。看起来好像"</Series>"
元素之后“&lt; ?xml version="1.0>",
无效。