Si sta chiamando il metodo addToCart e si passa l'id del prodotto. Ora puoi usare jQuery ajax per passare quei dati al tuo metodo di azione sul lato server.d
jQuery post è la versione breve di jQuery ajax.
function addToCart(id)
{
$.post('@Url.Action("Add","Cart")',{id:id } function(data) {
//do whatever with the result.
});
}
Se volete più opzioni come callback di successo e la gestione degli errori, utilizzare jQuery ajax,
function addToCart(id)
{
$.ajax({
url: '@Url.Action("Add","Cart")',
data: { id: id },
success: function(data){
//call is successfully completed and we got result in data
},
error:function (xhr, ajaxOptions, thrownError){
//some errror, some show err msg to user and log the error
alert(xhr.responseText);
}
});
}
Quando si effettuano chiamate ajax, vi consiglio vivamente di utilizzare il metodo di supporto HTML come Url.Action
per generare il percorso ai tuoi metodi di azione.
Questo funzionerà se il codice è in una vista del rasoio perché Url.Action verrà eseguito dal rasoio sul lato server e quell'espressione C# verrà sostituita con il percorso relativo corretto. Ma se stai usando il tuo codice jQuery nel tuo file js esterno, puoi considerare l'approccio menzionato in questo answer.
grazie Kman, il suo funzionamento ... –
C'è un errore di sintassi con l'esempio precedente, come ci dovrebbe essere un comma dopo dati: {id: id}, ma sfortunatamente è considerato una modifica troppo banale da risolvere. – Sterno
@Sterno L'ho messo in coda per una revisione tra pari. Grazie per aver lasciato il tuo post; ha accelerato il mio processo di risoluzione dei problemi. – DigitalNomad