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 に答える