Pergunta

Eu sou um novato no jQuery e tento ler o resultado de um método de Pagemeth no meu script jQuery. Eu tenho um scriptManager instalado e o seguinte webMethod:

[WebMethod(EnableSession = true)]
    public static string CheckSystemDefault(string _id)
    {
        int id = Convert.ToInt16(_id);
        addressTypeRepository = new AddressTypeRepository();

        AddressType addressType = addressTypeRepository.GetById(id);

        if (addressType.IsSystemDefault == true)
            return "IsSystemDefault";
        else
            return "IsNotSystemDefault";
    }

Eu uso isso para verificar se um objeto possui a propriedade ISSystemDefault.

No script, entrego o ID do URL e quero avaliar o resultado:

var id = $(document).getUrlParam("id");
var check = PageMethods.CheckSystemDefault(id);
if (check == "IsSystemDefault") {
...
}
if (check == "IsNotSystemDefault") {
...
}

Mas, como resultado, a variável "verificação" é indefinida. O que eu tenho que mudar?

Foi útil?

Solução 2

A sintaxe no meu JQuery-Script não estava correta.

Tem que ser o seguinte:

<script type="text/javascript">

    jQuery(document).ready(function() {

        var id = $(document).getUrlParam("id"); 

        PageMethods.CheckSystemDefault(id, function(result) {
            if (result == "IsSystemDefault")
                // do something
            else
                // do something
        });

    });    

</script>

Outras dicas

Você deve ativar métodos de página no gerenciador de scripts. Você especificou enablepageMethods = "true" no elemento gerente de scripts como mostra o último atributo abaixo?

<ajaxToolkit:ToolkitScriptManager runat="Server"
    EnableScriptGlobalization="true"
    EnableScriptLocalization="true"
    ID="ScriptManager1"
    EnablePageMethods="true"/>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top