使用Web Api返回纯xml(无子元素)

时间:2013-02-21 12:56:19

标签: xml asp.net-mvc asp.net-web-api

我怎么能返回一个非常简单的xml,它只由root元素组成?就像是:  <?xml version="1.0" encoding="UTF-8"?> <myelement> somevalue </myelement>

问题在于没有子元素,所以我不知道应该写什么类型的POCO类来获取输出。 我一直在尝试的是返回一个字符串,但我最终得到了

<string>somevalue</string>

我是WebApi的新手,所以任何建议都将非常感谢!

1 个答案:

答案 0 :(得分:0)

我敢打赌,这不是最好的解决方案,但它现在正在运作:

public class MyCustomFormatter : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        HttpResponseMessage response = actionExecutedContext.Response;
        var contentType = response.Content.Headers.ContentType;
        var oldContents = response.Content.ReadAsStringAsync().Result;
        oldContents = oldContents.Replace("string", "myelement");
        response.Content = new StringContent("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + oldContents);
        response.Content.Headers.ContentType = contentType;
        actionExecutedContext.Response.Content = response.Content;
    }
}