我想为用户添加一个位置(我的用户有一个他想要访问的位置列表)
[HttpPut]
[Route("{id:guid}/location/")]
public IHttpActionResult AddLocationToUser(Guid idUser , LocationDto location)
{
_userLogic.AddLocationToUser(idUser, location);
return Ok();
}
可以投球吗? (因为我有一个函数只是在用户列表中添加一个位置然后我想更新)但是我的路线应该是什么样的???
没关系[路线(" {id:guid} / location /")] ??
我从会话传递userId,但是可以在PUT中发送整个位置吗?
答案 0 :(得分:1)
由于它正在添加/创建记录,因此您需要使用 HttpPost 。对于LocationDto,您想使用 [FromBody] 。
例如,
[HttpPost]
[Route("{id:guid}/location")]
public IHttpActionResult AddLocationToUser(Guid id, [FromBody] LocationDto location)
{
_userLogic.AddLocationToUser(id, location);
return Ok();
}
答案 1 :(得分:0)
我的第二个@Win建议使用HttpPost。如果您使用的是Web Api 2,则以下是另一种选择。
<强>控制器:强>
awscli
查看型号:
public class LocationController : ApiController
{
UserLogic _userLogic;
public LocationController()
{
_userLogic = new UserLogic();
}
public void PostLocationToUser(LocationViewModel locationViewModel)
{
_userLogic.AddLocationToUser(locationViewModel.UserId, locationViewModel.Location);
}
}
<强> JSON:强>
public class LocationViewModel
{
public Guid UserId { get; set; }
public Location Location { get; set; }
}
public class Location
{
public string Latitude { get; set; }
public string Longitude { get; set; }
}
我使用默认的Web Api路由,url是“/ api / Location”,PostLocationToUser返回状态代码204(无内容)。