Web Api 2 Post - UrlHelper.Link не должен возвращать null
У меня есть базовая настройка веб-API 2 с некоторой базовой маршрутизацией.
Ниже приведен маршрут по умолчанию и сообщение для вставок. Когда я вызываю сообщение, запись создается отлично в базе данных, но вызов "CreatedAtRoute" возвращает сообщение 500:
ExceptionMessage: "UrlHelper.Link не должен возвращать null." ExceptionType: "System.InvalidOperationException"
Почему я получаю эту ошибку?
[RoutePrefix("api/casenotes")]
public class CasenoteController : ApiController...
// POST api/Casenote
[Route("")]
[ResponseType(typeof(client_admission_casenote))]
public async Task<IHttpActionResult> Postclient_admission_casenote (client_admission_casenote client_admission_casenote)
{
Request.GetRequestContext().IncludeErrorDetail = true;
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.client_admission_casenote.Add(client_admission_casenote);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = client_admission_casenote.casenote_id }, client_admission_casenote);
}
Ответы
Ответ 1
Поскольку вы используете маршрутизацию атрибутов, вы должны указать свой маршрут. [Маршрут ( "api/books/{id}", Name= "GetBookById" )]
и использовать имя маршрута в вызове url.link()
см. подробности здесь. http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-names