如何从jQueryAjax调用将参数(email ID)传递给c#函数?

如何从jQueryAjax调用将参数(email ID)传递给c#函数?,c#,asp.net,jquery,asp.net-ajax,C#,Asp.net,Jquery,Asp.net Ajax,我试图从jqueryajax调用中调用Web服务方法。 方法从前端接受3个参数,并在数据库中搜索记录 我无法在Ajax调用中正确包含这3个参数: Web方法是: public bool FindRecord(string Fname, string Lname, string Email) { string SQL = "SELECT * FROM contactsSource WHERE (first_name ='" + Fname + "') AND (last_name = '

我试图从jqueryajax调用中调用Web服务方法。 方法从前端接受3个参数,并在数据库中搜索记录

我无法在Ajax调用中正确包含这3个参数:

Web方法是:

public bool FindRecord(string Fname, string Lname, string Email) 
{
    string SQL = "SELECT * FROM contactsSource WHERE (first_name ='" + Fname + "') AND (last_name = '" + Lname + "') AND (email_address_work = '" + Email +"')";
    OleDbDataReader reader = DataAccess.GetData(SQL);
    if (reader.HasRows)
    {
        return true;
    }
    else
    {
        return false;
    }
}
我正在尝试的Ajax调用是:

   <script type="text/javascript">
        $(document).ready(function() {
            $('#btnDownload').click(function() {
                var Fname = $('#Fname').val();
                var Lname = $('#Lname').val();
                var email = $('#Email').val();

                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    data: '{"Fname":"' + Fname + '", "Lname":"' + Lname + '", "Email":' + email + '}',
                    url: "WebService.asmx/FindRecord",
                    dataType: "json",
                    success: function(result) {
                        alert(result.d);
                    },
                    error: function(result) {
                        alert("Due to unexpected errors we were unable to load data");
                    }
                });
                //$('.secondary').show(500);
            });
        });    

    </script>

您的email参数应该用双引号括起来,否则它将无法正确解析为JSON字符串值。正确的语法应为:

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: '{"Fname":"' + Fname + '", "Lname":"' + Lname + '", "Email":"' + email + '"}',
    url: "WebService.asmx/FindRecord",
    dataType: "json",
    success: function(result) {
        alert(result.d);
    },
    error: function(result) {
        alert("Due to unexpected errors we were unable to load data");
    }
});

您的email参数应该用双引号括起来,否则它将无法正确解析为JSON字符串值。正确的语法应为:

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: '{"Fname":"' + Fname + '", "Lname":"' + Lname + '", "Email":"' + email + '"}',
    url: "WebService.asmx/FindRecord",
    dataType: "json",
    success: function(result) {
        alert(result.d);
    },
    error: function(result) {
        alert("Due to unexpected errors we were unable to load data");
    }
});

您的
数据
对象构造错误。改为这样做:

data: {Fname: Fname, Lname: Lname, Email: Email }

您的
数据
对象构造错误。改为这样做:

data: {Fname: Fname, Lname: Lname, Email: Email }
不需要报价

尝试:

不需要报价

尝试:


非常好的观察@Prutswonder,它成功了:)非常感谢,这是我第一次使用Jquery和Ajax@Vishal请务必阅读其他答案,你这样做很难。记住,JSON是Javascript对象表示法。@Chris我肯定也会尝试另一种方法,实际上这是我在Jquery和Ajax上的第一个任务。顺便说一句,谢谢。非常好的观察@Prutswonder,它成功了:)非常感谢,这是我第一次使用Jquery和Ajax@Vishal请务必阅读其他答案,你这样做很难。记住,JSON是Javascript对象表示法。@Chris我肯定也会尝试另一种方法,实际上这是我在Jquery和Ajax上的第一个任务。顺便说一句,谢谢。是的,这也是一个更好、更整洁的方式,谢谢你的帮助。是的,这也是一个更好、更整洁的方式,谢谢你的帮助