ASP.NET WebAPI: Comment contrôler la chaîne de contenu retourné au client?

Dans WebAPI, dis-je retourner une chaîne enroulée dans une réponse HTTP:

return Request.CreateResponse(HttpStatusCode.BadRequest, "Line1 \r\n Line2");

Lors de l'invocation de cette action à partir de jQuery, le texte de la réponse est traitée avant d'être retourné. Ainsi, dans le xhr, j'obtiens quelque chose comme ceci:

function success(xhr) {
    alert(xhr.responseText); //alerts ""Line1 \\r\\n Line2""
}

En d'autres termes, la chaîne est enveloppé dans des guillemets, caractères spéciaux obtenir échappé de sorte qu'elles apparaissent dans la sortie (réelles d'alerte est "Ligne1 \r\n Line2", de sorte que les retours à la ligne ne sont pas conservés, mais plutôt codé et illustré dans le texte de la réponse).

Je peux contourner ce problème en supprimant les guillemets et de remplacer les retours à la ligne sur le client comme suit:

var responseText = xhr.responseText.substr(1, xhr.responseText - 2)
    .replace('\\r', '\r').replace('\\n', '\n');

Mais est-il une façon de dire WebAPI la façon de chaîne de format des réponses? Par exemple, de ne pas les emballer dans des guillemets, et convertir les caractères échappés?

InformationsquelleAutor danludwig | 2012-10-29