簡體   English   中英

如何在 ASP.NET MVC 中使用 ActionResult 返回帶有聲明的 Xml?

[英]How do I return Xml with declaration using an ActionResult in ASP.NET MVC?

我無法在使用 Action Result 返回 xml 時附加 xml 聲明。 我可以看到它在調試時被包含在內,直到它在下面的代碼中返回 xml 但沒有顯示在網絡上。

我目前在做什么:

  1. 使用 XML PATH 從 Sql Server 獲取 Xml。
  2. 使用XML Reader返回 xml 字符串:

     public XmlDocumentResult XmlData() { String s = "<?xml version=\\"1.0\\" encoding=\\"utf-8\\" ?>" + "\\n" + this.GetData(); byte[] encodedString = Encoding.UTF8.GetBytes(s); MemoryStream ms = new MemoryStream(encodedString); ms.Flush(); ms.Position = 0; XmlDocument doc = new XmlDocument(); doc.Load(ms); return new XmlDocumentResult { XmlDocument = doc }; } public class XmlDocumentResult : ContentResult { public XmlDocument XmlDocument { get; set; } public override void ExecuteResult(ControllerContext context) { if (XmlDocument == null) return; Content = XmlDocument.OuterXml; ContentType = "text/xml"; base.ExecuteResult(context); } }

我嘗試過以下 Stackoverflow 中的代碼片段:

XmlDeclaration xmldecl;
xmldecl = xmlDocument.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement root = xmlDocument.DocumentElement;
xmlDocument.InsertBefore(xmldecl, root);


XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(docNode);

也許試試這個:

public IActionResult Index()
{
    // you need to convert your xml to string
    var xmlString = "xml content..";
    return this.Content(xmlString, "text/xml");
}

請參閱https://docs.microsoft.com/en-us/previous-versions/aspnet/web-frameworks/dd492713%28v%3dvs.100%29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM