我想使用ajax发布asp.net的表单数据。并希望在另一个页面上接收该数据作为表单数组。
这是我现在要做的 Default2.aspx
$('#btnSubmit').click(function () {
$.ajax({
type: "POST",
url: "Default3.aspx",
data: $('#form1'),
success: function (msg) {
alert("Success");
}
});
});
和Default3.aspx
protected void Page_Load(object sender, EventArgs e)
{
int loop1;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.Form;
// Get names of all forms into a string array.
String[] arr1 = coll.AllKeys;
for ( loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Form: " + arr1[loop1] + "<br>");
Label1.Text = arr1[loop1];
}
}
更新:我通过ajax调用发送序列化对象。我想在我的asp.net代码中获取该数据。我怎么能这样做?
答案 0 :(得分:4)
使用serialize
方法。
由于您使用的是表格,因此可以让它控制如何进行发布:
var $frm = $('#form1');
$('input[type="submit]', $frm).click(function (e) {
e.preventDefault();
$.ajax({
type: $frm.attr('method'),
url: $frm.attr('action'),
data: $frm.serialize(),
success: function (msg) {
alert("Success");
}
});
});
可以将其重构为可以放在母版页中的通用脚本:
<script type="text-javascript">
$(function() {
$('.post-using-ajax').each(function() {
var $frm = $(this);
$frm.submit(function (e) {
e.preventDefault();
$.ajax({
type: $frm.attr('method'),
url: $frm.attr('action'),
data: $frm.serialize(),
success: function (msg) {
alert("Success");
}
});
});
});
});
</script>
让您使用CSS类post-using-ajax
将所有表单转换为AJAX表单。
<form method="POST" action="someAction" class="post-using-ajax">
<!-- all form items -->
</form>
答案 1 :(得分:0)
答案 2 :(得分:0)
如果表单中的字段很少,也许您应该使用$ .ajax,如:
$.ajax({
type: "POST",
url: "default3.aspx",
data: {name:"usename", sex:"male", age:"18"},
dataType:"json",
success: function (msg) {
alert("Success");
}
});
我认为这是最简单的方法。