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;
}
相关推荐
William_cl3 天前
ASP.NET Core 视图组件:从入门到避坑,UI 复用的终极方案
后端·ui·asp.net
William_cl3 天前
ASP.NET Core ViewData:弱类型数据交互的精髓与避坑指南
后端·asp.net·交互
Net蚂蚁代码4 天前
【如何在ASP.Net Core中使用 IHostedService的方法】执行自动服务运行
后端·asp.net
Caco.D5 天前
Aneiang.Pa.News:属于你自己的全平台热点聚合阅读器
爬虫·asp.net·aneiang.pa·热榜新闻
咖丨喱5 天前
【解析并缓存 P2P_ATTR_DEVICE_INFO】
缓存·asp.net·p2p
咖丨喱6 天前
【解决Miracast出现组形成失败问题】
后端·asp.net
智商偏低6 天前
ABP 框架中的 HttpContextWebClientInfoProvider
后端·asp.net
William_cl9 天前
ASP.NET入门必吃透:HTTP 协议从流程到状态码,代码 + 避坑指南
后端·http·asp.net
William_cl9 天前
ASP.NET View 层核心:布局页_Layout.cshtml 与 @RenderBody () 通关指南
后端·asp.net
William_cl9 天前
【C# ASP.NET】局部视图 @Html.Partial 全解析:复用 UI 的正确姿势(附避坑指南)
c#·html·asp.net