.net 核心 mvc 正在到达我发布的 json 控制器,但我无法读取它。当我使用 [FromBody] 时,我也会收到错误代码 415

Posted

技术标签:

【中文标题】.net 核心 mvc 正在到达我发布的 json 控制器,但我无法读取它。当我使用 [FromBody] 时,我也会收到错误代码 415【英文标题】:The .net core mvc is reaching the json controller I POST, but I can't read it. I also get error code 415 when I use [FromBody] 【发布时间】:2022-01-21 04:40:21 【问题描述】:

我在我正在编码的项目中使用 XHR 发布数据。 JSON 到达控制器,但如果我使用[FromBody],我会得到error code 415。如果我不使用它,传入的 JSON 看起来是空的。

控制器

[HttpPost]
[IgnoreAntiforgeryToken]
[Route("revizedCategoryzfc")]
public void revizedCategoryzfc([FromBody] Category model) 

    if (model.fileCode != null)
    
        System.Console.WriteLine(model.fileCode);
    
    System.Console.WriteLine("Girdi");

发布 XHR 代码

async function makeRequest(method, url, model) 
    return new Promise(function(resolve, reject) 
        let xhr = new XMLHttpRequest();
        xhr.open(method, url);

        xhr.onload = function() 
            if (this.status >= 200 && this.status < 300) 
                resolve(xhr.response);
            else 
                reject(
                    status: this.status,
                    statusText: xhr.statusText
                );
            
        ;

        xhr.onerror = function() 
            reject(
                status: this.status,
                statusText: xhr.statusText
            );
        ;

        xhr.send(model);
    );


document.querySelector('.save-service').addEventListener('click', async () => 
    for (var es of document.querySelectorAll('.category-item'))
    
        await makeRequest('POST', '/zfc/revizedCategoryzfc', JSON.stringify(
            "Name": es.querySelector('.service-name').value,
            "fileCode": es.querySelector('.filecodas').value,
            "CategoryId": es.querySelector('.zfc-id').value
        ))
    
)

错误

【问题讨论】:

【参考方案1】:

由于您使用 json strngify 和 frombody,因此您必须将此标头添加到您的 xhr 中

xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

【讨论】:

当我添加这个时,数据返回为空。我会再试一次。谢谢你。我接受了答案。 不客气。 @i3kafa 欢迎您,尝试检查模型值。尝试警报(模型);在发送请求之前。

以上是关于.net 核心 mvc 正在到达我发布的 json 控制器,但我无法读取它。当我使用 [FromBody] 时,我也会收到错误代码 415的主要内容,如果未能解决你的问题,请参考以下文章

在.net核心MVC中创建JSon

Asp.Net Core MVC 不加载视图

ASP.NET 核心的 Mvc.LocalizationSample.Web 问题

ASP.NET MVC 核心 POST 请求未将 JSON 数据转换为模型

.net core 3.1将ajax对象列表发布到MVC控制器没有数据到达

由于错误,无法将Controller添加到asp.net Core MVC Project:指定的runtimeconfig.json不存在