2010-12-12 74 views
1

我有一個控制器操作,將RDF文檔作爲XML返回給瀏覽器。瀏覽器抱怨文檔無法顯示:從控制器動作返回RDF - ASP.NET MVC

命名空間前綴不允許以保留字符串「xml」開頭。處理資源時出錯

我試圖使用MCVContrib的XMLResult對象將文檔寫入響應流。我怎樣才能讓這個文檔正確顯示給瀏覽器?我必須訴諸寫一個簡單的字符串嗎?

public ActionResult Content(string id, string version, string localization) 
    { 
     IDocumentRequest request = new ResourceRequest() 
             { 
              Id = id, 
              Localization = Localization.GetByName(localization), 
              Version = version 
             }; 

     XmlDocument doc = _kbModel.GetContent(request); 

     return new XmlResult(doc); 
    } 
+0

您是否正在尋找一種在MVC中顯示ActiveReports報表的方法? – Lorenzo 2010-12-13 01:00:46

+0

它明確指出名稱空間包含'xml'項(http://support.microsoft.com/kb/262585)..只需在GetContent方法中查看您的源代碼,並用其他名稱替換該前綴即可。 – 2010-12-13 02:57:08

+0

RDF已正確形成並按預期在FF中顯示。 – Nick 2010-12-14 15:45:19

回答

0

RDF具有不同的MIME類型,只需XML即可。 XMLResult會將MIME類型設置爲「application/xml」,RDF需要的是「application/rdf + xml」。您需要設置本手冊,或者您可以創建自己的設置它的ActionResult。

SEE:http://www.w3.org/TR/rdf-syntax-grammar/#section-MIME-Type

0

你有一個xmlnamespace (as 'xmlns:xml="..."')在你返回文檔的根。

OR

您使用的是舊Microsoft XML (MSXML)解析器等於Microsoft XML Core Services version 4.0或更低。 更新last version of MSXML

原因:您正在使用一個/某些Microsoft XML(MSXML)在您的命名空間前綴的關鍵字返回的XML文件中,即xml的,

例如,你有返回的XML文檔中像xmlMyProject命名空間。請注意,xml大小寫無關緊要,即XMLMyProject,XmlMyProject ...