我有一个可以正常工作的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);
}
});
控制器接收的参数始终为空
答案 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; }
}