135 votes

Comment retourner une chaîne brute avec ApiController?

J'ai un ApiController qui sert XML / JSON, mais j'aimerais qu'une de mes actions retourne du code HTML pur. J'ai essayé le ci-dessous mais il retourne toujours XML / JSON.

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

Voici ce que retourne ci-dessus:

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

Existe-t-il un moyen de renvoyer uniquement le texte pur et non échappé sans même les balises XML environnantes (peut-être un attribut d'action de type retour différent)?

237voto

Darin Dimitrov Points 528142

Vous pouvez demander à votre action Web Api de renvoyer un HttpResponseMessage pour lequel vous avez un contrôle total sur le contenu. Dans votre cas, vous pouvez utiliser un StringContent et spécifier le type de contenu correct:

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

-2voto

user1075679 Points 21

Nous devons nous efforcer de ne pas renvoyer du HTML mais des données pures de nos API et de formater les données en conséquence dans l'interface utilisateur, mais vous pouvez peut-être utiliser:

 return this.Request.CreateResponse(HttpStatusCode.OK, 
     new{content=YourStringContent})
 

ça marche pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X