Без помощников из WebAPI это не может быть лучшим способом вернуть коды состояния из MVC6, не так ли?

Хотя я знаю, что MVC6 не выпущен, похоже, что в нем отсутствуют многие функции WebAPI и даже MVC5. Могу ли я предположить, что это не так, как это будет выглядеть на релизе?

[HttpPost("")]
public async Task<ActionResult> Post(Visit newVisit)
{
  var username = User.Identity.GetUserName();

  newVisit.UserName = username;

  if (await _repository.AddVisitAsync(newVisit))
  {
    Response.StatusCode = (int) HttpStatusCode.Created;

    return Json(newVisit);
  }

  return new HttpStatusCodeResult((int)HttpStatusCode.BadRequest);
}

Обратите внимание на приведения типов в Reponse.StatusCode и HttpStatusCodeResult (мне не хватает только возврата Ok(...), Created(...) и т.д.


person Shawn Wildermuth    schedule 16.01.2015    source источник
comment
На данный момент похоже на ошибку в фреймворке. Ошибка отправлена.   -  person Shawn Wildermuth    schedule 16.01.2015
comment
Ответ вы найдете здесь: ASP.NET Core Как вернуть определенный код состояния?   -  person Lukasz Mk    schedule 28.12.2016


Ответы (1)


Некоторые функции из MVC 5 и Web API 2 еще не перенесены в MVC 6 (который включает в себя Web API). Регистрация проблем на https://github.com/aspnet/Mvc/issues – это подходящее место для запросить недостающие функции. Пожалуйста, проверьте существующие проблемы, потому что многие проблемы уже отслежены.

Обратите внимание, что несколько API были переименованы при слиянии MVC и Web API, потому что мы не хотели иметь дубликаты API, поэтому даже если точное соответствие API может отсутствовать, оно может просто иметь новый название.

person Eilon    schedule 17.01.2015
comment
Да, с тех пор спецэффекты сильно изменились. Теперь он поддерживает общие методы Ok(), BadRequest() и подобные вспомогательные методы. - person Shawn Wildermuth; 05.01.2017