tutorial net mvc entre ejemplos diferencias asp c# asp.net-mvc asp.net-mvc-4 bad-request

net - web forms c# ejemplos



¿Controlador MVC devolver una mala petición? (5)

Además de la respuesta de @Kekk, 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>

...

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 recibo 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; } }


Configure el código de estado Http como incorrecto 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"); } }


Por supuesto que puede.

Echa un vistazo a mi acción.

// GET: Student/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Student student = db.Students.Find(id); if (student == null) { return HttpNotFound(); } return View(student); }

Creo que esta es la mejor práctica

  1. para devolver HttpStatusCodeResult(HttpStatusCode.BadRequest); En caso de que el usuario no proporcione un valor requerido.

  2. para devolver HttpNotFound(); En caso de que el usuario proporcione un valor requerido pero no velado.

espero que esto te ayude


Puede pasar un mensaje de error al segundo parámetro así:

return new HttpResponseMessage(HttpStatusCode.BadRequest, "Your message here");


return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "naughty");