如何在 ASP.NET MVC 中向客户端发送 XML 文件
Posted
技术标签:
【中文标题】如何在 ASP.NET MVC 中向客户端发送 XML 文件【英文标题】:How to send XML file to client in ASP.NET MVC 【发布时间】:2011-02-23 17:28:00 【问题描述】:在 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");
其中模型是 DataContext。但是,这不起作用。当我尝试下载数据时出现此错误:
XML Parsing Error: junk after document element
Location: http://localhost:1399/Xml/Download
Line Number 7, Column 10:</Series><?xml version="1.0"?>
---------^
【问题讨论】:
【参考方案1】:下载部分可以使用FileStreamResult
This page有上传下载示例;看看吧。
【讨论】:
【参考方案2】:一个 XML 文档只能有一个***元素。在元素结束之后,你不能拥有其他任何东西。看起来在 "</Series>"
元素之后你有 "?xml version="1.0>", 这是无效的。
【讨论】:
以上是关于如何在 ASP.NET MVC 中向客户端发送 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET MVC 中向控制器传递多个参数;此外,在 LINQ-to-SQL 中生成动态查询
在ASP.NET MVC的Action中直接接受客户端发送过来的HTML内容片段