无法将带有jquery的参数从主体传递到webapi post方法

时间:2018-10-15 22:30:18

标签: jquery ajax post asp.net-web-api

我有一个可以正常工作的webapi(已通过rest client测试)。我正在尝试使用jQuery调用post方法。

通过$.ajax$.post方法发送的参数为空。

在表单主体中传递的数据模型为:

public class SearchCandidatCriteria
{
    public string Nom;
    public string Sexe;
    public string Ville;
    public int SituationFamiliale;
    public int NiveauAcademique;
    public int ServiceNational;
    public string PosteDemande;
}

jQuery方法是:

$.ajax({
            'url': 'http://localhost:6232/api/Candidats/rechercher',
            'method': 'POST',
            'data': JSON.stringify('{"Nom":"","Sexe":"F","Ville":"","SituationFamiliale":0,"NiveauAcademique":";n,n,;n,;n","ServiceNational":"2","PosteDemande":"120"}'),
            'Content-Type': 'application/json',
            success : function(data) {
                console.log(data);
            }
        });

控制器接收的参数始终为空

1 个答案:

答案 0 :(得分:1)

您构造的请求不正确

构建JavaScript对象,然后对其进行字符串化

var data = {Nom:"",Sexe:"F",Ville:"",SituationFamiliale:0,NiveauAcademique:";n,n,;n,;n",ServiceNational:"2",PosteDemande:"120"};
$.ajax({
    url: 'http://localhost:6232/api/Candidats/rechercher',
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify(data),
    contentType: 'application/json',
    success : function(data) {
        console.log(data);
    }
});

模型还应该使用属性而不是字段

public class SearchCandidatCriteria {
    public string Nom { get; set; }
    public string Sexe { get; set; }
    public string Ville { get; set; }
    public int SituationFamiliale { get; set; }
    public int NiveauAcademique { get; set; }
    public int ServiceNational { get; set; }
    public string PosteDemande { get; set; }
}