【发布时间】:2020-01-09 01:19:23
【问题描述】:
我刚开始学习 asp.net core api,我正在尝试从 Postman 发出 post 请求。我想在发布时返回状态码 201,并将新发布的数据的 Uri 作为位置返回。下面是我的控制器代码
[HttpPost]
public ActionResult CreateMake([FromBody]MakeResource makeresource)
{
if (!ModelState.IsValid) {
return BadRequest(ModelState) ;
}
var makes = mapper.Map<MakeResource, Make>(makeresource);
_makes.AddMake(makes);
makeresource.Id = makes.Id;
return Created(new Uri(Request.Path, UriKind.Relative), makeresource);
}
我收到一个错误
System.UriFormatException: '无效的 URI: URI 的格式可能 未定。'
我猜它与 Uri(Request.Path) 有关。
在 Asp.net web api 中,我将其实现为return Created(new Uri(Request.Uri + "/" + makes.Id), makeresource);,并且操作类型将是 IHttpActionResult 而不是 ActionResult,如我的控制器中所示,但它在 asp.net 核心中不起作用。
将需要有关如何解决此问题的任何帮助。
谢谢。
【问题讨论】:
-
你有没有使用调试器查看你有哪些值用于创建 Uri
-
URI 是空的,这就是它抛出错误的原因...
标签: c# asp.net-core asp.net-apicontroller