【发布时间】:2021-02-01 16:43:55
【问题描述】:
我已经制作了一个 API 来关注用户。该方法接受 2 个参数,它们是两个 guid。方法:
// Follow user
[HttpPost]
public async Task<ActionResult<Guid>> FollowUser([FromBody] Guid user_gd, Guid user2_gd)
{
if (ModelState.ErrorCount > 0)
{
return BadRequest();
}
var followedUser = await _user.FollowUser(user_gd, user2_gd);
return Ok(followedUser);
}
API 中的管理器:
public async Task<bool> FollowUser(Guid user_gd, Guid user2_gd)
{
var followUserQuery =
@"
insert into userbind(gd, user_gd, followed_user_gd, date_followed)
values(@_gd, @_user_gd, @_followed_user_gd, @_date_followed)
";
await PostQuery(followUserQuery, new
{
_gd = GenerateGd(),
_user_gd = user_gd,
_followed_user_gd = user2_gd,
_date_followed = DateTime.Now
});
return true;
}
Angular(服务)中的API请求:
followUser(followed_user, user_gd): Observable<any> {
try {
return this._http.post<any>(this._apiUrl + "FollowUser", { "user2_gd": followed_user, "user_gd": user_gd }, this.httpOptions);
} catch (e) {
console.log("POST error: ", e);
}
}
组件:
followUser(gd) {
console.log(gd);
this._userService.followUser(gd, localStorage.getItem("gd")).subscribe(
res => {
console.log(res);
}
)
}
变量和一切现在都可以正常工作,但我每次都收到此错误:\
"无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Guid',因为该类型需要 JSON 原始值(例如字符串、数字、布尔值、null)正确反序列化。\r\n要修复此错误,请将 JSON 更改为 JSON 原始值(例如字符串、数字、布尔值、null)或将反序列化类型更改为正常的 .NET 类型(例如,不是原始类型像整数,而不是可以从 JSON 对象反序列化的集合类型(如数组或列表)。还可以将 JsonObjectAttribute 添加到该类型以强制它从 JSON 对象反序列化。\r\nPath 'user2_gd',第 2 行,第 15 位。”
有人知道如何解决这个问题或遇到同样的问题吗?请联系。
【问题讨论】:
标签: c# angular typescript asp.net-core asp.net-web-api