我有一个基本的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);
}
答案 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