【发布时间】:2020-11-19 08:00:14
【问题描述】:
我正在尝试从我的 razor 文件向我的 net core 3.1 控制器发出 ajax 调用 我在控制器方法的开头放置了一个断点 我注意到调用是对控制器方法进行的,但是该参数始终为空
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}
【问题讨论】:
-
试试
data: data而不是data: JSON.stringify(data) -
@PriyankPanchal 刚试了一下,当它碰到控制器时模型为空
-
我可以使用你的代码成功传递参数。你能分享你的整个剃须刀视图和你的 Startup.cs 吗?你自定义了任何模型绑定器吗?
标签: jquery ajax asp.net-core