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;
}
相关推荐
我的炸串拌饼店3 天前
ASP.NET MVC 中SignalR实现实时进度通信的深度解析
后端·asp.net·mvc
chegan3 天前
历时半年,我将一个大型asp.net的零代码快速开发平台转成了java
java·asp.net
三天不学习6 天前
ImageSharp.Web 使用指南:高效处理ASP.NET Core中的图像
前端·asp.net·图片处理·imagesharp.web
步、步、为营8 天前
.NET10:asp.net core mini api中的验证
java·asp.net·.net
[email protected]9 天前
Asp.Net Core SignalR导入数据
前端·后端·asp.net·.netcore
神仙别闹10 天前
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
前端·后端·asp.net
专注VB编程开发20年13 天前
asp.net mvc如何简化控制器逻辑
后端·asp.net·mvc
前端世界13 天前
ASP.NET ListBox控件多选实战:3步打造高效兴趣收集系统
后端·asp.net
[email protected]14 天前
ASP.NET Core SignalR - 部分客户端消息发送
后端·asp.net·.netcore
邪恶的贝利亚15 天前
从webrtc到janus简介
后端·asp.net·webrtc