如何使用ajax在asp.net中发布表单数据

时间:2012-03-08 10:27:32

标签: jquery asp.net

我想使用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代码中获取该数据。我怎么能这样做?

3 个答案:

答案 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");
                }
            });

我认为这是最简单的方法。