Ajax .Net核心MVC Post参数绑定为空
我有一个MVC控制器负责集团实体 我的Ajax .Net核心MVC Post参数绑定为空,ajax,.net-core,asp.net-core-mvc,asp.net-core-3.1,Ajax,.net Core,Asp.net Core Mvc,Asp.net Core 3.1,我有一个MVC控制器负责集团实体 我的[HttpPost]方法处理新组的创建。在参数中,我尝试将请求绑定到一个简单的GroupModelDTO 问题是参数始终为“null”。我还添加了.AddNewtonsoftJson()到我的服务集合 GroupController public IActionResult Create() { return View(); } [HttpPost] public async Task<IActionResult> Create([Fr
[HttpPost]
方法处理新组的创建。在参数中,我尝试将请求绑定到一个简单的GroupModel
DTO
问题是参数始终为“null”。我还添加了.AddNewtonsoftJson()代码>到我的服务集合
GroupController
public IActionResult Create()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] GroupModel group)
{
var (result, groupId) = await _groupService.Create(group.Name, group.Roles);
if (result.Succeeded)
{
return View("Index");
}
else
{
AddErrors(result);
return Create();
}
}
JS
function create() {
var group = new Object();
group.name = getGroupName();
group.roles = getSelectedRoles();
/* Ajax request */
$.ajax({
url: BASE_URL + 'Group/Create',
type: 'POST',
data: JSON.stringify(group),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("success");
},
error: function () {
alert("error");
}
});
}
我完全确定我错过了什么,我已经做了无数次了,但我就是想不出来
谢谢。我想这可能是由于组的数据格式造成的;group.roles=getSelectedRoles()代码>我向它添加了示例数据,它成功了。
以下是一个已完成的演示:
组控制器:
public IActionResult Create()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] GroupModel group)
{
return View();
}
public IActionResult Create()
{
返回视图();
}
[HttpPost]
公共异步任务创建([FromBody]GroupModel组)
{
返回视图();
}
视图:
创建
@节脚本{
函数create(){
var group=新对象();
group.name=“a”;
group.roles=新数组();
组角色[0]=1;
组角色[1]=2;
/*Ajax请求*/
$.ajax({
url:“创建”,
键入:“POST”,
数据:JSON.stringify(组),
数据类型:“json”,
contentType:'application/json;charset=utf-8',
成功:功能(数据){
警惕(“成功”);
},
错误:函数(){
警报(“错误”);
}
});
}
}
结果:
public IActionResult Create()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] GroupModel group)
{
return View();
}
<button onclick="create()">Create</button>
@section scripts{
<script type="text/javascript">
function create() {
var group = new Object();
group.name = "a";
group.roles = new Array();
group.roles[0] = 1;
group.roles[1] = 2;
/* Ajax request */
$.ajax({
url: 'Create',
type: 'POST',
data: JSON.stringify(group),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("success");
},
error: function () {
alert("error");
}
});
}
</script>
}