2012-08-07 22 views
0

我想下载一个xml文件,但是我有一个字符串中的xml内容。如何将xml内容下载到文件

public FileResult Download(string id)//guid 
    { 
     string fid = Convert.ToString(id); 

     var model = service.GetAllDefinitions().First(x => x.ID == id);    
     var definitionDetails = new StatisticDefinitionModel(model); 
     var definition = definitionDetails.ToXml; 
     //in this definition i have xml content not a path 
     string fileName = definitionDetails.Name + ".xml"; 
     string contentType = "text/xml"; 

     return File(definition , contentType); 
    } 

但这是行不通的,得到了​​像非法路径的错误。

感谢,

+0

您应该会收到警告,因为您没有在函数中使用'fileName'。大概你可以从那里工作。 – Gorpik 2012-08-07 11:09:01

+0

所以你在一个字符串中有一个XML结构,并且想把它放在一个文件中并返回它?为什么不直接返回XmlDocument? – Jan 2012-08-07 11:09:58

+0

@Gorpik -adding fileName也有同样的错误 – Ash 2012-08-07 11:11:46

回答

1

编辑 只有第一个选项将工作。另外,为客户指定一个默认文件名:

return File(Encoding.UTF8.GetBytes(definition), contentType, "somefilename.xml"); 
+0

但是我的xml使用的是encoding =“utf-16”,这里不存在Encoding – Ash 2012-08-07 11:22:32

+0

这是什么意思?你的'definition'变量是一个常见的.net字符串对象。此外,为brownser返回一个UTF-16不是一个好主意。是否有任何特别的原因使用UTF-16?T – devundef 2012-08-07 11:28:52

+0

为utf-16必须使用Unicode,谢谢 – Ash 2012-08-07 11:36:25