Ho il seguente codice jquery per chiamare un metodo web in una pagina aspx
$.ajax({
type: "POST",
url: "popup.aspx/GetJewellerAssets",
contentType: "application/json; charset=utf-8",
data: '{"jewellerId":' + filter + '}',
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
ed ecco la firma del metodo web
[WebMethod]
public static string GetJewellerAssets(int jewellerId)
{
Funziona bene.
Ma ora ho bisogno di far passare due parametri al metodo web
il nuovo metodo web ha questo aspetto
[WebMethod]
public static string GetJewellerAssets(int jewellerId, string locale)
{
}
Come posso modificare il codice client per chiamare correttamente questa nuova firma del metodo?
MODIFICARE:
Le seguenti 2 sintassi hanno funzionato
data: '{ "jewellerId":' + filter + ', "locale":"en" }',
e
data: JSON.stringify({ jewellerId: filter, locale: locale }),
dove filtro e locale sono variabili locali
JSON.stringify
un oggetto letterale, è NECESSARIO includere il nome del parametro con due punti, tutti racchiusi tra {}
parentesi graffe. L'utilizzo JSON.stringify(objectLiteral)
non funziona.
[WebMethod] [ScriptMethod(UseHttpGet = true)] public static string TestIBAN(string ccc)
?
data: JSON.stringify({ jewellerId: filter, locale: locale })
è il modo migliore che ho trovato, grazie a @ChrisCa