我有一个包含模型的Web Api -
public class Assessments
{
public List<AssessmentResult> Results { get; set; }
}
public class AssessmentResult
{
public int? AssessorId { get; set; }
public int? AssessmentId { get; set; }
public int? CentreId { get; set; }
public int? BatchId { get; set; }
public DateTime AssessmentDate { get; set; }
和控制器 -
[HttpPost]
[ActionName("SetAssessmentResults")]
public HttpResponseMessage SetAssessmentResults([FromBody] Assessments assessments)
{
try
{
string sproc = ConfigurationManager.AppSettings["ASSESSORAPP_InsertAssessmentsStaging"];
//_dt = Helper.ToDataTable(assessments); use this if sending list doesnt work
Mapper.Initialize(cfg =>
{
//cfg.CreateMissingTypeMaps = false;
cfg.CreateMap<AssessmentResult, AssessmentTable>().IgnoreAllNonExisting();
//cfg.IgnoreUnmapped();
});
List<AssessmentTable> assessmentTable = Mapper.Map<List<AssessmentResult>, List<AssessmentTable>>(assessments.Results);
Mapper.Configuration.AssertConfigurationIsValid();
string isSuccess = _db.InsertAssessmentResults(sproc, assessmentTable);
if (isSuccess.Split('$')[0].ToLower() == "success")
{
return Request.CreateResponse(HttpStatusCode.OK, isSuccess);
}
else if (isSuccess.Split('$')[0].ToLower() == "duplicate")
{
return Request.CreateResponse(HttpStatusCode.OK, isSuccess);
}
else
{
return Request.CreateResponse(HttpStatusCode.OK, isSuccess);
}
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, ex);
}
}
客户端,我正在使用Postman Chrome扩展程序 . 我正在发送带有JSON数据的POST请求 . 但是,我没有在控制器中获取JSON数据(评估对象始终显示NULL值)
assessments object showing NULL value
在客户端,我要求使用PostMan Chrome扩展程序
PostMan Client sending request
这是我的JSON数据:
{
"assessment":
[{
"AssessorId": 3,
"AssessmentId": 123,
"CentreId": 1,
"BatchId": null,
"AssessmentDate": "2016-09-30T00:00:00",
},{
"AssessorId": 2,
"AssessmentId": 123,
"CentreId": 1,
"BatchId": null,
"AssessmentDate": "2016-09-30T00:00:00",
}]
}
我还添加了Content-Type:application / json
请帮我解决这个问题 . 谢谢 !
1 回答
在您的类 Assessments 中,您将包含AssessmentResult列表的属性命名为“ Results " but when you send the post you are naming the property " assessment " it should be " Results ” (considering you have the default serializer configuration eg: no propertie name to lower camel case when serializing)
尝试:
另外作为一个好习惯,您应该在类Eg的构造函数中实例化列表: