1

在我的 ASP.Net MVC 应用程序的控制器中,我序列化了一个类,并试图提供内容以供立即下载。

到目前为止,我的控制器返回了一个FileStreamResult

    public FileStreamResult Create(MyViewMode vm)
    {
        var xml= _mySerializer.SerializeToXml(vm);

        var ms = new MemoryStream(Encoding.UTF8.GetBytes(xml));
        return new FileStreamResult(ms, "application/xml");
    }

这有效,但是它在浏览器中输出 XML。

例如,有没有办法让它以 MyXml.xml 的形式下载文件?

4

2 回答 2

4

这似乎做你想做的事:

public class HomeController : Controller
{
    public ActionResult MyXml()
    {
        var obj = new MyClass {MyString = "Hello", MyInt = 42, MyBool = true};
        var ser = new XmlSerializer(typeof(MyClass));
        var stream = new MemoryStream();
        ser.Serialize(stream, obj);
        stream.Position = 0;
        return File(stream, "application/xml", "MyXml.xml");
    }

    public class MyClass
    {
        public string MyString { get; set; }
        public int MyInt { get; set; }
        public bool MyBool { get; set; }
    }
}
于 2012-10-23T16:47:08.807 回答
0

您可以使用 XmlDocument() 并将 XML 写入其中,然后使用 Save 属性吗?

于 2012-10-23T16:39:25.297 回答