jquery - net core 3.1 ajax 参数未发送到控制器
问题描述
我正在尝试从我的 razor 文件向我的 net core 3.1 控制器发出 ajax 调用我在控制器方法的开头放置了一个断点我注意到调用是对控制器方法进行的,但是该参数始终为空
阿贾克斯调用:
$.ajax({
url: '@Url.Action("Freeze", "Admin")',
contentType: 'application/json; charset=utf-8',
type: 'POST',
cache: false,
data: JSON.stringify(data) ,
success: function (data) {
alert('Freeze successful');
$('#tombstoneView').html(data);
},
error: function (xhr, status, error) {
alert('Error');
alert(xhr.responseText);
}
控制器方法:
[HttpPost]
public IActionResult Freeze([FromBody]FreezeModel model)
冻结模型
public class FreezeModel
{
public int productId { get; set; }
public string[] refPeriods { get; set; } = null;
public string freezeReason { get; set; }
public string freezeAuthorizer { get; set; }
}
我试图输出 JSON.stringify(data) 并得到了这个 {"productId":"10100039","freezeReason":"ttt","freezeAuthorizer":"","refPeriods":null}
解决方案
使用控制器方法,例如(即删除 [FromBody])
[HttpPost]
public IActionResult Freeze(FreezeModel model)
ajax调用提交表单
$('#testform').on('submit', function (e) {
e.preventDefault();
var data = $('#testform').serialize();
$.ajax({
url: '@Url.Action("Freeze", "Test")',
type: 'POST',
cache: false,
data: data,
success: function (data) {
alert('Freeze successful');
$('#tombstoneView').html(data);
},
error: function (xhr, status, error) {
alert('Error');
alert(xhr.responseText);
}
});
});
推荐阅读
- python-3.x - 使用索引将图像的一部分从一个复制到另一个时出现openCV错误
- html - 下拉菜单显示在父 div 后面
- java - WebdriverIO & Java - IFrame 中的 org.openqa.selenium.NoSuchElementException
- sql - Question-Answer-User实体的数据库设计。特别是在可能存在 N 级嵌套问题的情况下
- c# - 我将超过 900 个数据集行的数据发送到 web api 导致超时。使用 Asp.net MVC
- c++ - 用 c++ 解包位域会产生错误的结果
- python - 字符串列表列表的奇怪更新
- firebase - 如何仅在使用 onUpdate 触发 Firestore 云功能更改字段时触发操作?
- node.js - 在没有 foreach 的情况下在 mongodb 中使用增量值更新
- node.js - 不能在同一个类中调用函数