gpt4 book ai didi

c# - 使用 Angular 将 2 Guid 参数发布到 API

转载 作者:行者123 更新时间:2023-12-04 08:44:06 25 4
gpt4 key购买 nike

我已经制作了一个 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 原始值(例如字符串、数字、 bool 值、null)才能正确反序列化。\r\n要修复此错误,请将 JSON 更改为 JSON 原始值(例如字符串、数字、 bool 值、null)或将反序列化类型更改为正常的 .NET 类型(例如,不是整数等原始类型,而不是集合可以从 JSON 对象反序列化的类型(如数组或列表)。也可以将 JsonObjectAttribute 添加到该类型以强制其从 JSON 对象反序列化。\r\n路径“user2_gd”,第 2 行,位置 15。
有人知道如何解决这个问题或遇到同样的问题吗?请伸出手。

最佳答案

尝试使用必填字段创建类(class)并在您的 FollowUser 中接受它 Action 作为参数:

public class FollowUserParams
{
public Guid user_gd { get; set; }
public Guid user2_gd { get; set; }
}

// Follow user
[HttpPost]
public async Task<ActionResult<Guid>> FollowUser([FromBody] FollowUserParams p)
{
... use p
}
另请参阅 Andrew Lock 的 post关于 ASP 中的模型绑定(bind)。

关于c# - 使用 Angular 将 2 Guid 参数发布到 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64418319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com