Tôi có một phương thức web Api mà nên trả về một dữ liệu xml nhưng nó sẽ trả về chuỗi:Làm thế nào để trả về dữ liệu Xml từ một phương pháp API Web?
public class HealthCheckController : ApiController
{
[HttpGet]
public string Index()
{
var healthCheckReport = new HealthCheckReport();
return healthCheckReport.ToXml();
}
}
Nó trả về:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<myroot><mynode></mynode></myroot>
</string>
và tôi đã thêm bản đồ này:
config.Routes.MapHttpRoute(
name: "HealthCheck",
routeTemplate: "healthcheck",
defaults: new
{
controller = "HealthCheck",
action = "Index"
});
Cách chỉ trả lại các bit xml:
<myroot><mynode></mynode></myroot>
Nếu tôi đã sử dụng chỉ MVC, tôi có thể được sử dụng dưới đây nhưng Web API không hỗ trợ "Nội dung":
[HttpGet]
public ActionResult Index()
{
var healthCheckReport = new HealthCheckReport();
return Content(healthCheckReport.ToXml(), "text/xml");
}
Tôi cũng đã thêm các mã dưới đây để lớp WebApiConfig:
config.Formatters.Remove(config.Formatters.JsonFormatter);
config.Formatters.XmlFormatter.UseXmlSerializer = true;
Bạn có thể chỉ trả lại dụ HealthCheckReport, và để cho các định dạng XML làm serialization ? Ngay bây giờ, bạn đang tuần tự hóa thành XML trong bộ điều khiển của bạn và sau đó truyền chuỗi đó tới trình định dạng XML. Sau đó, trình định dạng XML sẽ tuần tự hóa chuỗi thành XML. –