Asp.net

如何使用 ApiController 返回原始字元串?

  • December 26, 2012

我有一個提供 XML/JSON 的 ApiController,但我希望我的操作之一返回純 HTML。我嘗試了以下方法,但它仍然返回 XML/JSON。

public string Get()
{
   return "<strong>test</strong>";
}

這是上面返回的內容:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"><strong>test</strong></string>

有沒有辦法只返回純的、未轉義的文本,甚至沒有周圍的 XML 標記(可能是動作屬性的不同返回類型)?

您可以讓您的 Web Api 操作返回一個HttpResponseMessage您可以完全控制其內容的內容。在您的情況下,您可以使用 StringContent 並指定正確的內容類型:

public HttpResponseMessage Get()
{
   return new HttpResponseMessage()
   {
       Content = new StringContent(
           "<strong>test</strong>", 
           Encoding.UTF8, 
           "text/html"
       )
   };
}

要麼

public IHttpActionResult Get()
{
   return base.ResponseMessage(new HttpResponseMessage()
   {
       Content = new StringContent(
           "<strong>test</strong>", 
           Encoding.UTF8, 
           "text/html"
       )
   });
}

引用自:https://stackoverflow.com/questions/14046417