javascript - 在 ajax 发布到 api 控制器时出现 400 错误
问题描述
我有以下 javascript 函数将数据发布到我的控制器(asp .net core 3.1 项目):
function saveState() {
const gridInstance = $("#ClaimsGrid").dxDataGrid("instance");
var userstate = gridInstance.state();
var data = { StateTypeID: 1, StateChange: userstate };
$.ajax({
type: "POST",
data: JSON.stringify(data),
url: "/api/PostUserState",
contentType: "application/json",
success: function () {
alert("Your grid profile has been saved");
},
error: function () {
alert("An error occurred during save of your grid profile");
}
});
}
我的控制器正在寻找定义为的模型 UserStateChange:
public class UserStateChange
{
public int StateTypeID { get; set; }
public string StateChange { get; set; }
}
控制器代码本身是:
[HttpPost("/api/PostUserState")]
public bool PostUserState([FromBody] UserStateChange state)
{
var UserID = new Guid(HttpContext.Session.GetString("UserId").ToString());
UserState mod = new UserState();
var cur = _context.UserState.First(a => a.AppUserID == UserID && a.StateTypeID == state.StateTypeID);
//... more logic here
return true;
}
我在 javascript 中正确获取了 JSOn.Stringify 数据,但我收到 400 错误,甚至从未在控制器上击中我的断点。我做错了什么,为什么会出现 400 错误?为什么它不能正确识别我的 json 模型?
解决方案
我认为问题出在客户端,尤其是数据部分。在js中创建一个对象并发送它。
推荐阅读
- javascript - 我的不和谐测试机器人返回“您无权使用该命令”,即使我的角色频道上明确有它
- c# - 如何在 DbContextOptions 中执行依赖注入
- c++ - 如果第一个参数小于阈值,则跳过函数参数计算
- android - MITMProxy 7.0.4 + Android 模拟器 AVD 30
- python - PYTHON 的部分 ROC 曲线的 P 值
- android - 可绘制的单选按钮对 state_checked 没有反应
- python - 使用python将大型xlsx拆分为多个csv文件
- reactjs - 通用 TS 在这种情况下如何工作
- flutter - useTabController 索引永远不会改变
- mysql - mysql.service 的作业失败,因为控制进程以错误代码退出且未启动