在我的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,例如?
答案 0 :(得分: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; }
}
}
答案 1 :(得分:0)
您可以使用XmlDocument()并将XML写入它,然后使用Save property?