2012-08-08 62 views
3

Possible Duplicate:
How to download xml file in asp.net using C#如何下載XML內容的XML文件

誰能請幫助如何下載XML(這是字符串)。我正在使用MVC3

mycode的;

public FileResult Download(string id) 
    { 
     var model = service.GetAllDefinitions().First(x => x.ID == id); 
     var definitionDetails = new StatisticDefinitionModel(model); 
     string xmlString = definitionDetails.ToXml; 
    //string presented xml 

     string fileName = definitionDetails.Name + ".xml"; 

      var stream = new MemoryStream(); 

      var writer = XmlWriter.Create(stream); 
      writer.WriteRaw(xmlString); 
      stream.Position = 0; 
      var fileStreamResult = File(stream, "application/xml", fileName); 
      return fileStreamResult; 

    } 

但這不working.gives錯誤

錯誤:

XML文檔必須有一個頂層元素。處理資源時出錯

謝謝,

+0

XML是什麼樣的? – 2012-08-08 11:09:51

+0

用於創建table.xml的xml工作正常,已經上傳到db表中。 – Ash 2012-08-08 11:11:29

+0

當我從xmlString中複製一個內容時,它的工作正常。但是當我嘗試下載它時出現錯誤 – Ash 2012-08-08 11:13:06

回答

5

這裏不需要xml流,只是返回字節。

public FileResult Download(string id) 
{ 
    var model = service.GetAllDefinitions().First(x => x.ID == id); 
    var definitionDetails = new StatisticDefinitionModel(model); 
    string xmlString = definitionDetails.ToXml; 
    string fileName = definitionDetails.Name + ".xml"; 


    return File(Encoding.UTF8.GetBytes(xmlString), "application/xml", fileName); 
} 
+0

我也試過這種方式。出現像XML頁面無法顯示的錯誤無法使用XSL樣式表查看XML輸入。請更正錯誤,然後點擊刷新按鈕,或稍後再試。 -------------------------------------------------- ------------------------------一個名字是從一個無效的字符開始的。處理資源文件時出錯:/// C:/ Users/asubramaniam/AppData/Local/Micros ... < – Ash 2012-08-08 11:24:12

+0

確定,因此您的xml定義有錯誤。在這裏粘貼xml。可能錯誤在根節點上。 – devundef 2012-08-08 11:26:03

+0

我檢查了xml ..沒有錯誤,並且當我從xmlString獲取內容時它的工作正常。對於我所有的xml文件,這是我的db's.sis有任何瀏覽器的問題? – Ash 2012-08-08 11:30:04