[英]How do I return Xml with declaration using an ActionResult in ASP.NET MVC?
我無法在使用 Action Result 返回 xml 時附加 xml 聲明。 我可以看到它在調試時被包含在內,直到它在下面的代碼中返回 xml 但沒有顯示在網絡上。
我目前在做什么:
使用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.