Passare un parametro a metodo di server utilizzando JavaScript
-
19-09-2019 - |
Domanda
Ho un pubblico nel mio codice dietro la pagina che prende una stringa. Vorrei chiamare questo metodo da javascript.
Il parametro che voglio passare verso il basso è variabile che cambia da un ddl.
Così ho qualcosa di simile:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
Questa tramanda la parola 'valore' e non i dati di valore.
Non riesco a capire la sintassi corretta per tramandare i dati di valore.
Grazie
Soluzione
Come detto da altri, cercando di accedere a codice C # dietro direttamente da JavaScript è impossibile.
Tuttavia, è possibile comunicare con esso indirettamente .
Credo che il vostro colpo migliore è quello di utilizzare una combinazione di jQuery e l'attributo [WebMethod]
.
funzione javascript utilizzando jQuery per fare una chiamata AJAX:
function Search() {
var search = $('#<%= ddlContact.ClientId %>').val();
var options = {
type: "POST",
url: "Default.aspx/Hello",
data: "{'name' :'" + search + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg);
}
};
$.ajax(options);
}
Codice dietro:
public partial class _Default : System.Web.UI.Page
{
[WebMethod]
public void Hello(string name)
{
return "Hi " + name;
}
}
Altri suggerimenti
Il codice si sta mostrando viene eseguito lato server quando viene generato il codice HTML. In altre parole, viene eseguito prima che colpisca il browser e l'utente ha la possibilità di fare qualsiasi cosa con la pagina.
Non importa quale sia la sintassi si usa qui le informazioni che si desidera non è possibile accedere in questo momento -. Non esiste ancora
L'approccio giusto è quello di inviare queste informazioni al server o inviando pagina o utilizzando AJAX e poi, sulla coda di richiesta ciclo / risposta fare la vostra elaborazione
Un'altra opzione sarebbe quella di fare il lato client di elaborazione utilizzando Javascript