ASP.NET MVC后端控制器用模型 接收前端ajax数据为空

1、前端js代码

如下:

javascript 复制代码
const formData = {
    DeptName: 'D001',
    Phone: '12345678900'
};

$.ajax({
    url: "/Phone/SavePhone1",
    type: "POST",
    contentType: "application/json",
    data: JSON.stringify(formData), //必须要JSON.stringify
    success: function (result) {
        if (result > 0) {
            alert("保存成功!")
        }
        else {
            alert("保存失败!")
        }
    },
    error: function (xhr, status, error) {
        alert("操作失败:" + error);
    }
});

2、问题描述

直接使用DeptPhone模型接收,接收不到数据,使用[FromBody]也不行:

3、解决方案

改用Request.InputStream来获取数据,然后使用JsonConvert来转换成实体,代码如下:

cs 复制代码
public int SavePhone()
{
    // 用模型接收不了ajax传过来的json数据,使用Request.InputStream获取
    var phone = Newtonsoft.Json.JsonConvert.DeserializeObject<DeptPhone>(new StreamReader(Request.InputStream).ReadToEnd());
    int result = _deptPhone.SavePhone(phone);
    return result;
}
相关推荐
SEO-狼术15 小时前
ASP.NET Zero v15.0.0 adds full .NET
后端·asp.net·.net
赵庆明老师16 小时前
在ASP.NET Core Web Api中添加身份验证和授权
java·前端·asp.net
管家婆客服中心2 天前
Server 2008 R2系统安装IIS和ASP.NET框架
后端·asp.net
嘻哈baby2 天前
分布式组网架构设计:从BitTorrent DHT到现代SD-WAN的演进
分布式·后端·asp.net
武藤一雄2 天前
.NET中到底什么是SignalR (持续更新)
后端·微软·c#·asp.net·.net·.netcore·signalr
by__csdn2 天前
第二章 (.NET Core环境搭建)第二节( Visual Studio Code)
ide·vscode·c#·vue·asp.net·.net·.netcore
by__csdn2 天前
第二章 (.NET Core环境搭建)第三节( Visual Studio for Mac)
ide·kubernetes·c#·asp.net·.net·.netcore·visual studio
William_cl2 天前
【ASP.NET Core 进阶】Controller 过滤器之 ExceptionFilter:全局异常捕获的 “终极方案”(附避坑指南)
后端·asp.net
William_cl2 天前
【ASP.NET Core 进阶】Controller 过滤器之 ResultFilter:View 渲染前后的 “神操作”(附避坑指南)
后端·asp.net
武藤一雄3 天前
C#:进程/线程/多线程/AppDomain详解
后端·微软·c#·asp.net·.net·wpf·.netcore