ViewModels的模型绑定数组存在问题

时间:2019-04-24 14:17:20

标签: javascript reactjs asp.net-core axios model-binding

我正在通过axios.post请求将模型发送到后端服务器。都好。但是,我很难发送这些ViewModel的数组。

这是我到目前为止所掌握的。

我的axios方法:


 createMusicList() {
         const { playlist } = this.state;

         let model = {Name: "PlayListOne",
            Tracks: ["test1", "test2"]}

         console.log(playlist);
         console.log(model);


        axios({
            url: 'http://localhost:60231/api/values',
            method: 'post',
            headers: {'content-type' : 'application.json'},
            params: model
            })       
        .then(function (response){
            console.log(response.data)
        })
        .catch(function (error){
            console.log(error);
        });
     }

这是我后端的ViewModel:

public class PlaylistModel
    {
        public string[] Tracks { get; set; }

        public string Name { get; set; }
    }

这是我后端的ActionMethod:

[HttpPost]
public void Post(PlaylistModel result)
{
    Console.WriteLine();
}

这也是继续传递数组的正确方法吗?如果要传递具有这些属性的多个对象,是否应该在我的TypeModel的ViewModel中使用所有属性?

编辑:我出于简化和测试目的更改了代码。如果我将“模型”发送到后端,则会映射“名称”属性,但是,字符串数组不是-它返回类似{string [0]}

的内容

1 个答案:

答案 0 :(得分:0)

最后知道了!

axios({
        url: 'http://localhost:60231/api/values',
        method: 'post',
        data: qs.stringify(model),
        })

在模型上使用“ qs.stringify”,并将“数据”用作键。如果是参数,则数据将作为查询字符串发送。