julho 2008


Se você tentar usar JSON para consumir webservices/page methods, talvez você recebe a exceção maximum length exceed. Para resolver isso, altere seu web.config.

<system.web.extensions>
              <scripting>
                     <webServices>
        <jsonSerialization maxJsonLength="5000000" />
                     </webServices>
              </scripting>
       </system.web.extensions>
Anúncios

Dessa vez vamos considerar uma chamada com parametros. Lembrando que estou usando o framework mootools para ajudar com JSON e na criação do objeto ajax.

O javascript ficará assim:

function ajax(){
            var pagePath = window.location.pathname; 
            var campo1   = $("campo1").value;
            var campo2   = $("campo2").value;

            var parametros = { 'a':campo1,'b':campo2};

            var opcoes =   
            {   
                 "method":"post",   
                 "data": Json.toString(parametros),   
                 "urlEncoded": "false",
                 "headers": {
                                "Content-Type": "application/json; charset=utf-8"
                            }, 
                 "onComplete": completou   
            };   
            
            var ajaxObj = new Ajax(pagePath + "/testeAjax", opcoes).request(); 
}

function completou(result){
    var obj = Json.evaluate(result);
    alert(obj.d); // .net framework 3.5
    alert(obj);  // qualquer outro .net framework
}
    <form id="form1" runat="server">
    <div>
        <input type="text" id="campo1" />
        <input type="text" id="campo2" />
        <input type="button" onclick="javascript:ajax();"
    </div>
    </form>

Agora no code-behind

        [WebMethod()]
        public static int testeAjax(int a, int b)
        {
            return a+b;
        }

Post migrado e atualizado em:

http://programatik.soucafecomleite.com.br/imask

Estou usando o mootools para facilitar a criação do objeto request xml.


function ajax(){
            var pagePath = window.location.pathname; 
            var opcoes =   
            {   
                 "method":"post",   
                 "data": "{}",   
                 "urlEncoded": "false",
                 "headers": {
                                "Content-Type": "application/json; charset=utf-8"
                            }, 
                 "onComplete": completou   
            };   
            var ajaxObj = new Ajax(pagePath + "/testeAjax", opcoes).request(); 
}

function completou(result){
    var obj = Json.evaluate(result);
    alert(obj.d); // se tiver usando .net framework >= 3.5
    alert(obj);  // qualquer outro .net framework 
}

O que o pagepath faz?
Apenas pega o conteudo da url e concatena com o nome do pagemethod que foi implementado no code-behind.
Ex.:

http://localhost/default.aspx = default.aspx/testeAjax

No code behind:

        [WebMethod()]
        public static string  testeAjax()
        {
            return "teste";
        }

Post migrado e atualizado em:

http://programatik.soucafecomleite.com.br/pegar-parametro-url-javascript

Usando o Google Custom Search um pessoal criou um site de busca para códigos e artigos de C#. Quem quiser conferir: http://www.csharpsearch.com/

O pessoal do zend liberou a versão 1.6 RC 1(Release Candidate), quem quiser testar as novas funcionalidades.

http://devzone.zend.com/article/3712-Zend-Framework-1.6-Release-Candidate-1-now-available

Próxima Página »