Eu tenho o seguinte código jquery para chamar um webmethod em uma página aspx
$.ajax({
type: "POST",
url: "popup.aspx/GetJewellerAssets",
contentType: "application/json; charset=utf-8",
data: '{"jewellerId":' + filter + '}',
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
e aqui está a assinatura do método da web
[WebMethod]
public static string GetJewellerAssets(int jewellerId)
{
Isso funciona bem.
Mas agora preciso que dois parâmetros sejam passados para o método da web
o novo método da web se parece com este
[WebMethod]
public static string GetJewellerAssets(int jewellerId, string locale)
{
}
Como altero o código do cliente para chamar com êxito essa nova assinatura de método?
EDITAR:
As 2 sintaxes a seguir funcionaram
data: '{ "jewellerId":' + filter + ', "locale":"en" }',
e
data: JSON.stringify({ jewellerId: filter, locale: locale }),
onde filtro e local são variáveis locais
JSON.stringify
com um literal de objeto, você DEVE incluir o nome do parâmetro com dois pontos, todos colocados entre {}
colchetes. Usar JSON.stringify(objectLiteral)
não funciona.
[WebMethod] [ScriptMethod(UseHttpGet = true)] public static string TestIBAN(string ccc)
?
data: JSON.stringify({ jewellerId: filter, locale: locale })
é a melhor maneira que eu encontrei, obrigado @ChrisCa