Web Api 2 Post - UrlHelper.Link不得返回null

时间:2015-04-14 19:45:35

标签: asp.net-web-api2

我有一个基本的Web API 2设置,其中包含一些基本路由。

以下是插入的默认路线和帖子。当我调用帖子时,记录在数据库中完美地创建,但是" CreatedAtRoute" call返回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 个答案:

答案 0 :(得分:38)

由于您使用的是属性路由..您必须为路线命名..即     [路线(“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