0

私はPHPのバックグラウンドを持っているので、すべてのajax呼び出しを処理するためのPHPファイルを持っていることに慣れています。

最近、ASP.NETコントロールと環境全般について紹介されました。

JavaScriptファイルから呼び出されることになっている場合、ajaxリクエストを処理する正しい方法は何でしょうか?

また、AJAX(ASP.NETを使用)よりも優れたオプションがある場合は、可能であれば、それを使用して、小さな実装を見てみたいと思います。

ありがとう!男

4

1 に答える 1

1

ASP.NETに対する多くのajaxの影響を見てきました...しかし、それらすべての中で最高のものは私自身のものだと思います...:D

次のようなJavaScript関数を作成するだけです。

<script type="text/javascript">
    function callasync(url, id_contenedor) {
        var ajax = false;

        if (window.XMLHttpRequest) {
            //Mozilla, Safari, etc 
            ajax = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            //IE       
            try {
                ajax = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                //Versión antigua    
                try {
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {
                }
            }
        }
        else
            return false;

        if (id_contenedor != '') {
            document.getElementById(id_contenedor).innerHTML = "<table width='100%' height='100%'><tr><td style='text-align: center; vertical-align: center;'><a class='LabelInfo'>Whait...</a><br /><img src='Imagenes/Esperar.gif' /></td></tr></table>";
        }

        ajax.onreadystatechange = function () {
            pageload(ajax, id_contenedor);
        }

        ajax.open('GET', url, true);
        ajax.send(null);
    }

    function pageload(ajax, id_contenedor) {
        if (ajax.readyState == 4 && (ajax.status == 200 || window.location.href.indexOf("http") == -1))
            if (id_contenedor != '') {
                document.getElementById(id_contenedor).innerHTML = ajax.responseText;
                ResizeCanvas();
            }
    }
</script>

次に、URLとdivのIDを使用して関数「callasync」を呼び出します。

callasync('mypage.aspx?QS_KEY = 123'、'divId');

ASP.NETコードビハインドで...次のようにRenderメソッドをオーバーライドします。

protected override void Render(HtmlTextWriter writer)
{
    if (Request.QueryString["QS_KEY"] != null)
    {
        //render what you want.
    }
    else
    {
        base.Render(writer);
    }
}
于 2012-12-13T15:43:50.777 に答える