Salve a tutti sto cercando di imparare ad utilizzare il fetch in un progetto asp net. e mi sono blocca al momento di passare i dati che ho recuperato nella view in un action tramite un array, mi spiego meglio
ho un plusante che avvia una funzione
<a class="btn btn-sm btn-primary" style="color:white"
onclick="buttonEsporta_Click(this);">
<i class="far fa-file-alt"></i> Crea Tracciato Sel
</a>
che in base la riga selezionata con checkbox mi dà il valore di quanto selezionato
<input id="Checkbox_@(groupPerizia.IdPerizia)" value="@groupPerizia.IdPerizia" type="checkbox"
name="checkAll" class="checkSingle"/>
lo script della funzione è
async function buttonEsporta_Click(sender) {
let ids = new Array();
let checkboxes = document.querySelectorAll("input[type='checkbox']");
//Faccio il ciclo per recuperare i dati del CheckBox
for (var i = 1; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
ids.push(checkboxes[i].value);
}
}
//Se ci sono dati selezionati
if (ids.length > 0) {
console.log(ids);
let response = await fetch("CreaTracciatotxt", {
credentials: "same-origin",
method: "post",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
Items: ids
})
});
}
}
fina recuperare i dati tutto funziona, l' ho testato con il console log e l ids mi restituisce i dati che ho selezionato!!
il Problema nasce lato controller ho letto un pò in giro e mi dice di utilizzare il frombody quindi ho fatto questa azione
con la relativa classe
[HttpPost]
public async Task<IActionResult> CreaTracciatotxt([FromBody] List<PerizieTxt> perizia)
{
foreach(var perizie in perizia)
{
var test = perizie.Items;
Console.WriteLine(test);
}
return view();
}
public class PerizieTxt
{
public Guid Items { get; set; }
}
ma quando premo il pulsante mi da l errore che l' oggetto e null dove sto sbagliando?