Buonasera,
Ho necessità di richiamare un metodo .Net dal JS, e ci sono riuscito senza problemi, il punto è che dentro a un metodo statico
non posso accedere all'istanza del servizio iniettato.
Come posso fare??
Button con evento click
<button title="Elimina Azienda" @onclick="(()=>DeleteAzienda(azienda.AziendaID))" class="btn btn-icon btn-light-danger btn-sm mr-2">
<span class="svg-icon">
<!--begin::Svg Icon | path:/var/www/preview.keenthemes.com/keen/releases/2021-03-15-144509/theme/demo1/dist/../src/media/svg/icons/Home/Trash.svg--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24" />
<path d="M6,8 L18,8 L17.106535,19.6150447 C17.04642,20.3965405 16.3947578,21 15.6109533,21 L8.38904671,21 C7.60524225,21 6.95358004,20.3965405 6.89346498,19.6150447 L6,8 Z M8,10 L8.45438229,14.0894406 L15.5517885,14.0339036 L16,10 L8,10 Z" fill="#000000" fill-rule="nonzero" />
<path d="M14,4.5 L14,3.5 C14,3.22385763 13.7761424,3 13.5,3 L10.5,3 C10.2238576,3 10,3.22385763 10,3.5 L10,4.5 L5.5,4.5 C5.22385763,4.5 5,4.72385763 5,5 L5,5.5 C5,5.77614237 5.22385763,6 5.5,6 L18.5,6 C18.7761424,6 19,5.77614237 19,5.5 L19,5 C19,4.72385763 18.7761424,4.5 18.5,4.5 L14,4.5 Z" fill="#000000" opacity="0.3" />
</g>
</svg><!--end::Svg Icon-->
</span>
</button>
Il Click richiama la funzione seguente:
//Elimina azienda
public async Task DeleteAzienda(int id)
{
await JSRuntime.InvokeVoidAsync("AlertDelete",id);
}
Al suo interno richiama una funzione Javascript, di seguito la funzione JS
window.AlertDelete = (id) => {
Swal.fire({
title: "Vuoi rimuovere la riga selezionata?",
text: "Questa azione è irreversibile!",
icon: "error",
showCancelButton: true,
confirmButtonText: "Si, rimuovi!",
cancelButtonText: "No, annulla!",
reverseButtons: true
}).then(function (result) {
if (result.value) {
DotNet.invokeMethodAsync('Timing', 'ConfDeleteAzienda',id)
.then(data => {
if (data == "success") {
Swal.fire(
"Rimozione completata!",
"La rimozione è avvenuta con successo.",
"success"
)
} else {
Swal.fire(
"Errore Imprevisto, Contattare l'assistenza!",
"La riga selezionata non è stata rimossa :)",
"error"
)
}
}
);
// result.dismiss can be "cancel", "overlay",
// "close", and "timer"
} else if (result.dismiss === "cancel") {
Swal.fire(
"Azione annullata",
"La riga selezionata non è stata rimossa :)",
"error"
)
}
});
La funzione JS richiama a sua volta il metodo statico:
[JSInvokable]
//public static async Task<string> ConfDeleteAzienda(int id, IAmministrazioneService service)
public static async Task<string> ConfDeleteAzienda(int id)
{
var ris = "";
if (id != 0)
{
ris = await AziendaService.DeleteAzienda(id);
return ris;
}
else
{
return ris = TC_StatusResult.Error;
}
}
Mi da errore in "AziendaService" come ho spiegato all'inizio.
Come posso fare???