1

これが私の現在のコードです:

これはdefault.aspx用です

<body>
    <form id="form1" runat="server">
    <div id="mydiv">

    </div>
    </form>
    <script>
        $(document).ready(function () {

            $.ajax({
                url: 'Default2.aspx',
                data: "{ 'name': '" + "randel" + "' }",

                type: "POST",
                success: function () {

                    // alert('insert was performed.');
                    $("#mydiv").empty();

                    $("#mydiv").load("Default2.aspx #div");

                },
                error: function (data, status, jqXHR) { alert(jqXHR); }
            });

        })
    </script>
</body>

次に、Default2.aspx については、次のようにデータにアクセスします。

protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = Request.Form["name"].ToString();

    }
4

1 に答える 1

2

これは、ASP.NET でWebMethodを使用したいようです。

$(document).ready(function () {
            $.ajax({
                url: 'Default2.aspx/HelloWorld',
                data: "{ 'name': '" + "randel" + "' }",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    // alert('insert was performed.');
                    $("#mydiv").empty();
                    $("#mydiv").html(data);
                },
                error: function (data, status, jqXHR) { alert(jqXHR); }
            });
        });

コードビハインドでこれを行う必要があります:

[WebMethod()]
public static string HelloWorld(string name)
{
string message = "Hello " + name;
return message;
}

WebMethods は、 jQuery などを使用してすべてのクライアント サーバー トラフィックを制御するため、__doPostBack()を実行するよりも優れています。WebMethods の詳細:ここまたは Google の WebMethods ASP.NET を参照してください。

また、何らかのフォーム値を受け取りたい場合は、それを$.ajax データパラメータに配置し、同じパラメータをWebMethodに追加する必要があります。

編集済み

あなたが投稿したコードから、Default.aspx から Default2.aspx にいくつかのデータを送信し、Default2.aspx (#div) からいくつかのコンテンツをロードする必要があることがわかります。

あなたはこれを行うことができます:

$.ajax({
                url: "/Default2.aspx",
                type: "GET",
                dataType: "html",
                async: false,
                data: { "name": "randel"
                },
                success: function (obj) {
                    // obj will contain the complete contents of the page requested
                    // use jquery to extract just the html inside the body tag
                    $content = $(obj).find('body #div').html();
                    // then update the dialog contents with this and show it
                }
         });

そしてコードビハインドで:

protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = Request.QueryString["name"];
    }
于 2012-10-25T05:19:46.963 に答える