Відповіді:
У своєму контролері ви б повернули HttpStatusCodeResult таким чином ...
[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
}
int
так само, як і HttpStatusCode
.
200 - це лише звичайний HTTP-заголовок для успішного запиту. Якщо це все, що вам потрібно, просто поставте контролерreturn new EmptyResult();
HttpStatusCodeResult(...)
Натомість вам слід скористатися, оскільки це набагато чіткіше щодо того, що ви намагаєтесь досягти. Відповідно до прийнятої відповіді.
Ви можете просто встановити код статусу відповіді на 200, як описано нижче
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 });
}
}
Спосіб зробити це в .NET Core (на момент написання) наступним чином:
public async Task<IActionResult> YourAction(YourModel model)
{
if (ModelState.IsValid)
{
return StatusCode(200);
}
return StatusCode(400);
}
Метод StatusCode повертає тип StatusCodeResult, який реалізує IActionResult і тому може бути використаний як тип повернення вашої дії.
Як рефактор, ви можете поліпшити читабельність, використовуючи команду перелічених кодів HTTP status, таких як:
return StatusCode((int)HttpStatusCode.OK);
Крім того, ви також можете використовувати деякі з вбудованих типів результатів. Наприклад:
return Ok(); // returns a 200
return BadRequest(ModelState); // returns a 400 with the ModelState as JSON
Реф. StatusCodeResult - https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.statuscoderesult?view=aspnetcore-2.1