Sto tentando di chiamare un metodo controller da javascript e sembra che si stia riscontrando problemi nell'ottenere questo per l'esecuzione corretta. Ho poca esperienza con javascript e ho seguito altri esempi di come farlo da StackOverflow, ma sto ancora avendo alcuni problemi - se qualcuno può aiutare sarebbe fantastico.ASP.NET Metodo controller di chiamata su MVC 5 da Javascript Errore
Fondamentalmente quello che sto cercando di fare è impostare un tag .data su un oggetto javascript sulla stringa restituita da un metodo sul controller (questo metodo chiama un webservice che esegue una funzione di SQL Server). Il metodo deve essere passato con un parametro che viene utilizzato nella funzione.
Il codice è qui sotto:
codice JavaScript
for (var i = 0; i < stats.length; i++)
{
var stat = stats[i].data('id');
var color = CallService(stat);
this.node.fill = color;
}
Metodo JQuery
function CallService(id) {
$.ajax({
url: '@Url.Action("CallService", "NodeController")',
type: 'GET',
dataType: 'json',
cache: false,
data: { 'id': id },
success: function (color) {
return color;
},
error: function() {
alert('Error occured');
}
});
}
controller Metodo
il controller si chiama NodeController- che è quello a cui mi riferisco in url: call of ajax.
Fondamentalmente ciò che sta accadendo è quando ho eseguito nella pagina, ho un errore che dice che non può impostare this.node.fill ad un valore nullo POI ricevo l'avviso che un errore occurred- come ho detto io sono abbastanza inesperto con javascript quindi onestamente non sono nemmeno sicuro se sta chiamando il metodo nell'ordine corretto se ottengo un errore su this.node.fill prima di ricevere il messaggio di errore da JQuery.
Qualsiasi/tutti gli aiuti o suggerimenti sono molto apprezzati !!!
base asincrona errore di codifica: Non è possibile restituire un valore a partire dalla metà di una funzione di callback (come 'il successo:') come ciò accade lungo dopo che la funzione è terminata. @Igor ha alcuni suggerimenti corretti di seguito. –