ASP.NET Core API中的模型绑定始终为null

斯坦·统治者

我有一个简单的ASP.NET Core API,可使用javascript的fetch方法调用。但是SearchString属性类型的输入变量模型始终为null。

由于某种原因,当我使用Postman调用它时,它可以按预期工作,但不能从javascript中调用它。

API

[HttpPost]
public async Task<IActionResult> Search([FromBody] BasicSearchModel model)
{
    ....
}

BasicSearchModel.cs

public interface IBasicSearchModel
{
    string SearchString { get; set; }
}

public class BasicSearchModel : IBasicSearchModel
{
    public string SearchString { get; set; }
}

JavaScript

const WebRequest = async (controller = "API", action, query = {}, data = {}, method = RequestMethods.POST, mode = RequestModes.SameOrigin, creds = RequestCredentials.SameOrigin, headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }) => {
    const GetUrl = () => {
        var result = "/" + controller + "/" + action;
        var i = 0;

        for (var q in query) {
            if (i === 0) {
                result += "?";
            } else {
                result += "&";
            }

            result += q[0] + "=" + q[1];

            i++;
        }

        return result;
    }

    await fetch(GetUrl(), {
        method: method,
        headers: headers,
        // @ts-ignore
        credentials: creds.toLowerCase(),
        // @ts-ignore
        body: data,
        // @ts-ignore
        mode: mode.toLowerCase(),
    })
        .then(response => {
            if (response.ok) {
                return new RequestResult(response);
            } else {
                throw new Error("Request failed: " + response.status + "; " + response.statusText);
            }
        })
        .catch(error => {
            throw new Error("Error: " + error.statusText);
        });
};

JavaScript调用

var result = await WebRequest("Identity", "Search", null, { SearchString: str });

要求

标头:接受:“ application / json”,“ Content-Type”:“ application / json”

方法:“ POST”

身体:SearchString在: “测试仪”

恩科西

使用Postman调用时,它的工作方式与预期的一样,很可能是因为其格式正确。

SearchString:“测试人员”

无效的JSON

待发送的数据

await fetch(GetUrl(), {
    method: method,
    headers: headers,
    // @ts-ignore
    credentials: creds.toLowerCase(),
    // @ts-ignore
    body: JSON.stringify(data), //<--NOTE
    // @ts-ignore
    mode: mode.toLowerCase(),
})

使其具有正确的格式,以供模型绑定程序解析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模型绑定Asp net core 2.2

来自分类Dev

IFormFile在Asp.Net Core WebAPI中始终为空

来自分类Dev

IFormFile在ASP.NET Core 3.0 MVC中始终为NULL

来自分类Dev

ASP.Net Core异常-无法为模型对象创建模型绑定程序

来自分类Dev

为什么将带有Ajax的参数传递给ASP.NET Core中的控制器始终为NULL?

来自分类Dev

ASP.NET Core中的属性绑定不绑定属性值以查看模型

来自分类Dev

ASP.NET 和 EF Core Web API 为对象中的对象返回 null

来自分类Dev

ASP.NET Core 3 MVC:对象列表的模型绑定

来自分类Dev

Asp .Net Core 3.1 Razor页面:复杂模型绑定

来自分类Dev

单选按钮上的模型绑定对该属性返回null(ASP.NET Core)

来自分类Dev

ASP.NET Core绑定到字典

来自分类Dev

Asp.Net Core [FromQuery] 绑定

来自分类Dev

调试asp.net core web API

来自分类常见问题

在ASP.NET Core MVC中在运行时动态绑定模型

来自分类Dev

ASP.Net Core Razor Pages应用程序未绑定到模型中的属性

来自分类Dev

将路线和正文中的多个参数绑定到ASP.NET Core中的模型

来自分类Dev

在ASP.NET Core MVC中在运行时动态绑定模型

来自分类Dev

在ASP.NET MVC中,模型绑定通用列表为null

来自分类Dev

ASP.NET Core Razor页面-返回Page()后,复杂模型属性为null

来自分类Dev

ASP.NET Core中的属性

来自分类Dev

ASP.Net Core中的动态路由

来自分类Dev

ASP.NET Core中的加密配置

来自分类Dev

Asp.net Core中的UserHostAddress

来自分类Dev

ASP.NET Core 1.0中的会话

来自分类Dev

ASP.NET Core中的依赖注入

来自分类Dev

在ASP.NET Core中禁用分块

来自分类Dev

ASP.NET Core中的属性注入

来自分类Dev

在ASP.NET Core中替代GetUserManager

来自分类Dev

ASP.NET Core中的服务总线

Related 相关文章

热门标签

归档