这是我目前的代码:
这是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();
}
答案 0 :(得分: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的更多信息:here或只是google WebMethods ASP.NET。
如果您想获得某些表单值,则应将其放在 $。ajax data 参数上,并在 WebMethod 中添加相同的参数。
<强> EDITED 强>
从您发布的代码中我看到您希望从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"];
}