Me preguntaba si era posible devolver una solicitud incorrecta con contenido de un controlador MVC. La única forma en que he podido hacer esto es throw HttpException sin embargo, aquí no puedo configurar ningún contenido. Intenté este enfoque, pero por alguna extraña razón, siempre obtengo un OK. ¿Es posible hacer esto?
public class SomeController : Controller { [HttpPost] public async Task<HttpResponseMessage> Foo() { var response = new HttpResponseMessage(HttpStatusCode.BadRequest); response.Content = new StringContent("Naughty"); return response; } }return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "naughty");
Establezca el código de estado Http en solicitud incorrecta y use el método de Content para enviar su contenido junto con la respuesta.
public class SomeController : Controller { [HttpPost] public async Task<ActionResult> Foo() { Response.StatusCode = 400; return Content("Naughty"); } }Además de la respuesta de @Ekk, asegúrese de verificar esto:
ASP.NET+Azure 400 Bad Request no devuelve datos JSON
Agregue la siguiente entrada a su 'web.config'.
<system.webServer> <httpErrors existingResponse="PassThrough"/> </system.webServer>...