Witam. W kontrolerze mam Model:
public class MachineDetailTableRowModel
{
public string MachineName { get; set; }
public string ConcentrationValue { get; set; }
public string ConcentrationColor { get; set; }
public MachineReport.eLevelState PhLevelState { get; set; }
public string PhValue { get; set; }
public string PhColor { get; set; }
public MachineReport.eLevelState TrampOilLevelState { get; set; }
public string TrampOilValue { get; set; }
public string TrampOilColor { get; set; }
public string CleanOutDate { get; set; }
public bool OnlySummaryData { get; set; } = false;
public MachineComment[] LastReportComments { get; set; }
}
public class MachineComment
{
public string Date { get; set; }
public string Comment { get; set; }
public string CircleColor { get; set; }
}
i akcję kontrolera zwracającą widok częściowy:
[Authorize]
[Route("GenerateMachineDetailTableRow")]
public IActionResult GenerateMachineDetailTableRow(MachineDetailTableRowModel Model)
{
_logger.LogInformation(JsonConvert.SerializeObject(Model));
return PartialView("ReportGenerator/_MachineDetailTableRow", Model);
}
Skrypt js generuje następujące dane:
var data = {
MachineName: machineData.machineName,
ConcentrationValue: machineData.concentrationValue,
ConcentrationColor: machineData.concentrationColor,
PhValue: machineData.phValue,
PhColor: machineData.phColor,
TrampOilValue: machineData.trampOilValue,
TrampOilColor: machineData.trampOilColor,
CleanOutDate: machineData.cleanOutDate,
LastReportComments: machineData.commentsFromLastReport.map(function(value, label){
return {
CircleColor: value.circleColor,
Comment: value.Comment,
Date: value.date
}
}),
OnlySummaryData: onlySummaryData,
};
console.log(data);
var htmlData = $.ajax({
url: '/ReportGenerator/GenerateMachineDetailTableRow',
data: data,
...
Pole w skrypcie o nazwie poniżej jest wypełnione poprawnie, jednak po przekazaniu do modelu otrzymuję pustą tablicę. Próbowałem wyrzucić obiekt MachineComment
i wstawić tablicę typu string[], z tym samym skutkiem. Gdzie może leżeć błąd? Dodam, że problem jest tylko i wyłącznie z LastReportComments
LastReportComments
JSON.stringify
raczej na 99% musi być, bo sama metoda podczas wysyłania tego nie zamienia. Jeszcze jakiś problem jest po stronie c# ale z tym nie pomogę :P