我有一个JS对象数组,在Post时包含每个对象三个变量:
ParticipantId,
Answer,
ScenarioId
在发布期间,有一个大小为8的数组(当前无论如何)都正确包含数据。当我调用post请求时,Controller会在断点触发时遇到命中,问题是当我查看List<SurveyResponse> participantScenarios
时它显示为0值。
我一直很难理解的是JS和.Net之间的神奇沟通和转换,所以我很难看到它出错的地方。
我的JS电话:
postResponse: function () {
var data = JSON.stringify({ participantScenarios: this.scenarioResponses})
// POST /someUrl
this.$http.post('ScenariosVue/PostScenarioChoices', data).then(response => {
// success callback
}, response => {
// error callback
});
}
我的.Net核心控制器
[HttpPost("PostScenarioChoices")]
public async Task<ActionResult> PostScenarioChoices(List<SurveyResponse> participantScenarios)
{
List<ParticipantScenarios> addParticipantScenarios = new List<ParticipantScenarios>();
foreach(var result in participantScenarios)
{
bool temp = false;
if(result.Answer == 1)
{
temp = true;
}
else if (result.Answer == 0)
{
temp = false;
}
else
{
return StatusCode(400);
}
addParticipantScenarios.Add(new ParticipantScenarios
{
ParticipantId = result.ParticipantId,
Answer = temp,
ScenarioId = result.ScenarioId
});
}
try
{
await _context.ParticipantScenarios.AddRangeAsync(addParticipantScenarios);
await _context.SaveChangesAsync();
return StatusCode(201);
}
catch
{
return StatusCode(400);
}
}