Я согласился на это:
public FileStreamResult DownloadXML()
{
string name = "file.xml";
XmlDocument doc = getMyXML();
System.Text.Encoding enc = System.Text.Encoding.Unicode;
MemoryStream str = new MemoryStream(enc.GetBytes(doc.OuterXml));
return File(str, "text/xml", name);
}
Я не думаю, что это идеально, и я мог бы просто использовать FileContentResult и не беспокоиться о потоке памяти. Кроме того, я не думаю, что IE любит Unicode. Он жалуется, что «имя было начато с недопустимого символа», несмотря на то, что xml был в порядке и успешно открывался в Firefox.
Однако, похоже, это делает работу.