asp.net将多个参数传递给jQuery ajax调用

时间:2016-05-27 18:42:09

标签: jquery asp.net ajax

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="jquery-1.12.0.min.js"></script>
    <script src="Lash.js"></script>
</head>
<body>
   first name <input id="txtFirstname" type="text" /><br />
   last name  <input id="txtLastname" type="text" /><br />
   E-mail     <input id="txtEmail" type="text" /><br />
   password   <input id="txtPassword" type="password" /><br />
    <input id="btnRegister" type="button" value="Register" /><br />
</body>
</html>

/// <reference path="jquery-1.12.0.min.js" />

$(document).ready(function () {

    $("#btnRegister").click(function () {
        Register();
    });

    function Register() {

        var obj = { Firstname: $("#txtFirstname").val(), Lastname: $("#txtLastname").val(), Email: $("#txtEmail").val(), Password: $("#txtPassword").val() };

            $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "http://localhost:7910/WebService.asmx/Registering",
            data:JSON.stringify(obj),
            datatype: "json",
            success: function (data) {
                alert("Successfully register");
            },
                error: function (data) {
                alert("error");
            }

        });

    }

});

 [WebMethod]
        public string Registering(string user3gmail, string pass3, string name3, string nickname3, string birth)
        {
            return "{\"registerPachage\":{\"Id\":26}}";
        }

我是Ajax Jquery的初学者,我正在锻炼以提高我对它的了解。我的问题是当我点击#btnRegister它的打印错误而不是成功消息。我认为我在ajax上传递的参数存在问题,但我不知道它是什么。

3 个答案:

答案 0 :(得分:2)

我认为你必须传递与代码隐藏方法相同的参数名称。 见下面的代码:

var obj = { user3gmail: 'test1', pass3: 'test1', name3: 'test1', nickname3: 'test1', birth: '232' };
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Home/Registering",
            data: JSON.stringify(obj),
            datatype: "json",
            success: function (data) {
                alert("Successfully register");
            },
            error: function (data) {
                alert("error");
            }
        });

    public string Registering(string user3gmail, string pass3, string name3, string nickname3, string birth)
            {
               return "{\"registerPachage\":{\"Id\":26}}";
            }

我认为这会有所帮助

答案 1 :(得分:1)

您正在发送具有多个属性的单个对象。注册方法当前需要多个参数(名称与发送的属性不同)。它应该有一个带有提供属性的参数 - 名字,姓氏,电子邮件和密码。

public class RegisterInfo
{
    public string Lastname {get;set;}
    public string Firstname {get;set;}
    public string Password {get;set;}
    public string Email {get;set;}

}

然后注册方法看起来像......

 public string Registering(RegisterInfo register)
        {
            return "{\"registerPachage\":{\"Id\":26}}";
        }

答案 2 :(得分:0)

你可以简单地传递这些参数,

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "http://localhost:7910/WebService.asmx/Registering",
        data: "user3gmail=" + $("#txtEmail").val() + "&pass3="+$("#txtPassword").val(),
        datatype: "json",
        success: function (data) {
            alert("Successfully register");
        },
        error: function (data) {
            alert("error");
        }
    })

这里我只添加了3个参数, 但你可以添加更多。