无法将axious阵列列表从vuejs发布到.net Core

无法将axious阵列列表从vuejs发布到.net Core,.net,vue.js,asp.net-core,axios,.net,Vue.js,Asp.net Core,Axios,我在vuejs中工作,以.NETCore作为后端。当我使用axios发布单个数组时,它会被发布,但当我尝试发布数组列表时,当函数被命中时,服务器端总是0。尝试了很多方法,但没有任何帮助。 这是我的客户端代码 let listOfRights= [{ RouteName: "Rname", UserName: "Uname" }, { RouteName: "Rname1", UserName: "Uname1" }] axios.request({ method: 'POST',

我在vuejs中工作,以.NETCore作为后端。当我使用axios发布单个数组时,它会被发布,但当我尝试发布数组列表时,当函数被命中时,服务器端总是0。尝试了很多方法,但没有任何帮助。 这是我的客户端代码

let listOfRights=  [{ RouteName: "Rname", UserName: "Uname" }, { RouteName: "Rname1", UserName: "Uname1" }]
axios.request({
  method: 'POST',
          url: `/api/UserManager/saveUserRights`,
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
          },
          params:listOfRights,

        }).then(response => response.data).then(
          res => {
            debugger;
          });
这是我的服务器端代码

        [Authorize]
        public IActionResult saveUserRights(List<MenuRights> listOfRights)
        {

            try
            {
                // further code
            }
            catch (Exception ex)
            {

                throw ex;
            }

            return Ok();
        }
[授权]
公共IActionResult saveUserRights(权限列表)
{
尝试
{
//进一步代码
}
捕获(例外情况除外)
{
掷骰子;
}
返回Ok();
}
但在服务器端,它总是得到0条记录。
例如,当我只在客户端发布一条记录时,我将参数从
params:listOfRights,
params:listOfRights[0],
在服务器端,从
public IActionResult saveUserRights(权利列表)
public IActionResult saveUserRights(菜单项权利列表)
然后它被张贴。 但我想发布列表。这是没有得到张贴。谢谢


能否验证以下代码:

let listOfRights= [
  { RouteName: "Rname", UserName: "Uname" }, 
  { RouteName: "Rname1", UserName: "Uname1" }
]


let url = '/api/UserManager/saveUserRights'

let headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}

axios.post(url, listOfRights, headers).then((response) => {
  console.log(response)
}, (error) => {
  console.log('EROR:', error)
})
并检查console.log返回的内容


您还可以在服务器端代码上设置一个断点,以查看它是否传递了正确的数据。

这一点对我有效。你可以试试这个

axios({
                    method: 'post',
                    url: '/api/customersfilter',
                    data: {
                        min_number: this.min_number,
                        equal_num: this.equal_num,
                        max_number: this.max_number,
                    }
                })

通过在API方法中添加[FromBody]标记进行修复
public IActionResult saveUserRights([FromBody]权限列表)

现在它也在接受列表。

你能在Chrome控制台的网络选项卡上验证网络调用和传递给API的相应数据吗?
0:{“RouteName”:“Rname1”,“用户名”:“Uname1”}1:{“RouteName”:“Rname”,“UserName”:“Uname”}
这是传递给APIf这是通过的,接下来,您需要做的是在服务器端代码上设置一个断点,并验证参数
List listOfRights
是否实际获取了Axios调用传递的值。我已经添加了一个断点,该断点会被命中,但如果列表为空,是否有一个方法会在调用控制器之前被命中?也许数据在某个时候被撤销了?您还可以发布
MenuRights
类的代码吗。可能某些验证正在删除数据…
[{RouteName:“Rname”,用户名:“Uname”},{RouteName:“Rname1”,用户名:“Uname1”}]0:{RouteName:“Rname”,用户名:“Uname”}1:{RouteName:“Rname1”,用户名:“Uname1”}
相同的内容不会被发布