Web Api 2 Post-UrlHelper.El enlace no debe devolver null


Tengo una configuración básica de web API 2 con un enrutamiento básico.

A continuación se muestra la ruta y publicación predeterminadas para inserciones. Cuando llamo al post, el registro se crea perfectamente en la base de datos, pero la llamada" CreatedAtRoute " devuelve un error 500 que indica:

ExceptionMessage: "UrlHelper.Link no debe devolver null." ExceptionType: "System.InvalidOperationException "

¿Por qué recibiría este error?

[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);
    }
Author: Unheilig, 2015-04-14

1 answers

Ya que está usando enrutamiento de atributos.. tienes que nombrar tu ruta.. i. e. [Route ("api/books/{id}", Name="GetBookById")]

Y usa el nombre de la ruta en tu url.link () call

Ver detalles aquí.. http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-names

 38
Author: Ronnel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-15 00:08:13