Try:
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public static string Example(string id)
{
return "it worked";
}
From MSDN :
true, если метод вызывается с помощью команды HTTP GET;false, если метод вызывается с помощью команды HTTP POST.По умолчанию установлено значение false.
По умолчанию установлено значение false, поэтому вы уже должны использовать POST.
Насчет вызова, попробуйте выполнить из jquery:
<script>
$.ajax({
type: "POST",
url: "WebForm1.aspx/Example",
data: JSON.stringify({
'theIdToPass'
}),
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
complete: function (jqXHR, status) {
alert("complete: " + status + "\n\nResponse: " + jqXHR.responseText);
}
});
</script>