Cómo devolver un código de estado HTTP 200 desde el controlador ASP.NET MVC 3
Estoy escribiendo una solicitud que acepta datos POST de un servicio de terceros.
Cuando se PUBLICAN estos datos, debo devolver un código de estado HTTP 200.
¿Cómo puedo hacer esto desde mi controlador?
Aceptado
En su controlador devolvería un HttpStatusCodeResult como este...
[HttpPost]
public ActionResult SomeMethod(...your method parameters go here...)
{
// todo: put your processing code here
//If not using MVC5
return new HttpStatusCodeResult(200);
//If using MVC5
return new HttpStatusCodeResult(HttpStatusCode.OK); // OK = 200
}
200 es sólo el encabezado HTTP normal para una solicitud exitosa. Si eso es todo lo que necesitas, solo ten el controlador.return new EmptyResult();
Simplemente puede configurar el código de estado de la respuesta en 200 como se muestra a continuación
public ActionResult SomeMethod(parameters...)
{
//others code here
...
Response.StatusCode = 200;
return YourObject;
}
[HttpPost]
public JsonResult ContactAdd(ContactViewModel contactViewModel)
{
if (ModelState.IsValid)
{
var job = new Job { Contact = new Contact() };
Mapper.Map(contactViewModel, job);
Mapper.Map(contactViewModel, job.Contact);
_db.Jobs.Add(job);
_db.SaveChanges();
//you do not even need this line of code,200 is the default for ASP.NET MVC as long as no exceptions were thrown
//Response.StatusCode = (int)HttpStatusCode.OK;
return Json(new { jobId = job.JobId });
}
else
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { jobId = -1 });
}
}