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
para devolver
HttpStatusCodeResult(HttpStatusCode.BadRequest);
En caso de que el usuario no proporcione un valor requerido.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");