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;
}
相关推荐
马船长15 小时前
ASP.NET Web Forms框架识别
asp.net
步、步、为营1 天前
.NET 8使用AOT发布ASP.NET Core应用
数据库·asp.net·.net
宝桥南山3 天前
.NET 10 - 尝试一下Minimal Api的Validation新特性
microsoft·微软·c#·asp.net·.net·.netcore
时光追逐者3 天前
一个开源的 Blazor 跨平台入门级实战项目
c#·asp.net·.net core·blazor
技术拾荒者5 天前
asp.net core 添加 EntityFrame
asp.net
HelloRevit7 天前
asp.net core api RESTful 风格控制器
后端·asp.net·restful
专注VB编程开发20年9 天前
在 ASP.NET 中,HTTP 处理程序(HttpHandler)是处理 HTTP 请求的核心组件
iis·asp.net·asp.net core
专注VB编程开发20年11 天前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
gCode Teacher 格码致知15 天前
《Asp.net Mvc 网站开发》复习试题
后端·asp.net·mvc
oMMh16 天前
使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(2)
前端·c#·asp.net