gpt4 book ai didi

.NET Core 3.1 中使用 Fetch API 的 Ajax 调用

转载 作者:行者123 更新时间:2023-12-03 16:22:26 25 4
gpt4 key购买 nike

我刚刚迁移到 .NET Core 3.1,在我必须更新的不同内容中,我无法让我的 ajax 调用正常工作。

当我进行 ajax 调用时,没有任何数据绑定(bind)到我的操作中的对象参数。

这就是我在 Razor 页面中调用电话的方式

fetch('/Administration/UpdateUserStatus', {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
'RequestVerificationToken': $('input[name="__RequestVerificationToken"]').val()
},
body: JSON.stringify(data)
})

我的 Controller Action

[HttpPost]
public IActionResult UpdateUserStatus([FromBody]User user) {
...
}

在我上面的示例代码中,调试代码我可以看到 usernull 的形式出现,因此来自 ajax 调用的数据不会绑定(bind)到 User目的。

如果我删除 [FromBody] , user不以 null 的形式出现了,但数据仍然没有绑定(bind)。所有属性为 null 或默认值。

在 .NET Core 2.1 中一切正常。

是我需要在 Startup.cs 中添加的东西吗? ?也许我缺少一个新配置?

谢谢

最佳答案

我解决了我的问题。 Json.NET 已从 .NET Core 3.0 中删除,因此我必须添加对包 Microsoft.AspNetCore.Mvc.NewtonsoftJson 的引用(NuGet) 然后在 ConfigureServices 下方法添加.AddNewtonsoftJson()到 Razor Pages,就像这样

services.AddRazorPages().AddNewtonsoftJson();

之后,一切都像以前一样工作。

Docs

关于.NET Core 3.1 中使用 Fetch API 的 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59399805/

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