Chamando o método de página asp.net do javascript não funciona

Oi eu estou chamando um método de página simples de javascript, aqui está o meu código na marcação

 function OnCallSumComplete(result, userContext, methodName) {             
            alert(result);
 }
 function OnCallSumError(error, userContext, methodName) {
     if (error !== null) {
         alert(error.get_message());
     }
 }
 function test(){
     var contextArray = "";
     PageMethods.TestMethod("test parameter", OnCallSumComplete, OnCallSumError,  contextArray);
 }

 <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />

no cs

 [System.Web.Services.WebMethod]
 public static string TestMethod(string para)
 {

    return "Yes this is working";
 }

o alerta mostra o resultado e diz "nulo". Eu verifico o firebug e não vejo erro do console.

Se eu mudar o TestMethod para

 [System.Web.Services.WebMethod]
 public static string TestMethod()
 {
    return "Yes this is working";
 }

E PageMethod para

 PageMethods.TestMethod( function (response) { alert(response);  } );

Ele mostra a resposta correta como "Sim, isso está funcionando". No entanto, eu preciso passar o parâmetro para a função. Eu sinto falta de alguma coisa?

Obrigado por ajuda.

questionAnswers(4)

yourAnswerToTheQuestion