Ich habe eine Web-API-Methode, die ein XML-Daten zurückgeben sollte, aber es gibt string:Wie Xml-Daten von einer Web-API-Methode zurückgegeben werden?
public class HealthCheckController : ApiController
{
[HttpGet]
public string Index()
{
var healthCheckReport = new HealthCheckReport();
return healthCheckReport.ToXml();
}
}
Es gibt:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<myroot><mynode></mynode></myroot>
</string>
und ich habe diese Zuordnung hinzugefügt:
config.Routes.MapHttpRoute(
name: "HealthCheck",
routeTemplate: "healthcheck",
defaults: new
{
controller = "HealthCheck",
action = "Index"
});
Wie man es nur die xml Bits zurückbringt:
<myroot><mynode></mynode></myroot>
Wenn ich nur MVC wurde mit, kann ich die unten aber Web-API nicht unterstützt werden, mit „Inhalt“:
config.Formatters.Remove(config.Formatters.JsonFormatter);
config.Formatters.XmlFormatter.UseXmlSerializer = true;
:
[HttpGet]
public ActionResult Index()
{
var healthCheckReport = new HealthCheckReport();
return Content(healthCheckReport.ToXml(), "text/xml");
}
Ich habe auch die folgenden Codes an die WebApiConfig Klasse hinzugefügt
Können Sie sich die Instanz HealthCheckReport zurück und lassen Sie die XML-Formatierer die Serialisierung zu tun ? Im Moment serialisieren Sie in Ihrem Controller XML und übergeben diese Zeichenfolge dann an den XML-Formatierer. Dann serialisiert der XML-Formatierer die Zeichenfolge in XML. –