我在vuejs中工作,以.net核心作为后端。当我用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();
}
但在服务器端它总是得到0条记录。
当我发布一条记录时,例如在客户端,我将参数从params:listOfRights,
更改为params:listOfRights[0],
,在服务器端,将参数从public IActionResult saveUserRights(List<MenuRights> listOfRights)
更改为public IActionResult saveUserRights(MenuRights listOfRights)
,然后它会被发布。但我想发布列表。这是不会被发布。谢谢
Image attached for first and second call and network posted tab as well
3条答案
按热度按时间cbeh67ev1#
您能否验证以下代码:
并检查控制台。记录它返回的内容。
您也可以在服务器端程式码上放置中断点,以查看它是否传递正确的数据。
vecaoik12#
通过在API方法
public IActionResult saveUserRights([FromBody]List<SystemMenuRights> listOfRights)
中添加[FromBody]标记进行修复,现在也接受列表。8aqjt8rx3#
这个对我很管用你可以试试这个