1

Here is my current code:

Here is for 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>

Then for Default2.aspx, I want to access the data like this:

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 在某种程度上比执行__doPostBack()更好,因为您使用例如 jQuery 控制所有客户端-服务器流量。有关 WebMethods 的更多信息:这里或只是谷歌 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 回答