如何在asp.net中将值从客户端传递到服务器端?

时间:2012-09-17 12:30:20

标签: javascript asp.net facebook

如何将以下脚本中的值传递给服务器端

// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function(response) {
if (response.authResponse) {
FB.api('/me', function(me) {
document.getElementById('auth-displayname').innerHTML = me.name;
document.getElementById('Email').innerHTML = me.email;
document.getElementById('gender').innerHTML = me.gender;
document.getElementById('birth').innerHTML = me.birthday;
document.getElementById('firstname').innerHTML = me.first_name;
})

3 个答案:

答案 0 :(得分:1)

客户端上存在Javascript变量,因此为了将这些值放入服务器,您需要从客户端执行请求。您可能需要一种名为AJAX的方法。 AJAX涉及Javascript在页面后台向服务器发出请求。您将设置一个需要这些后台请求的C#网页。如果您使用GET请求,那么将您的AJAX请求的查询字符串中的变量放入新的C#页面。如果您想使用POST请求,那么您将在发布到页面的数据中设置参数。

像jQuery这样的库让这种事情变得非常简单。

答案 1 :(得分:1)

在webform2.aspx

     <script type="text/javascript">
        function LoadValues(me) {
                     {

                        var Email = me.email;
                        var Name = me.name;
                        var Id = me.id;
                        var Dob = me.birthday;
                        var Gender = me.gender;
                        alert(Email)

                        document.getElementById('auth-loggedout').style.display = 'none';
                        document.getElementById('auth-loggedin').style.display = 'block';


                          var data2Send = '{"fbemail": '+Email+', "fbname":'+Name+', "fbid":'+Id+',"fbname":'+Dob+',"fbname":'+Name+' }';
        $.ajax({
            type: "POST",
            url: 'webform2.aspx/Testmethod',
            data: data2Send,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (arg) {console.log(arg) //call successfull
            $("#lbltxt").text(arg);
            },
            error: function (xhr) {
              alert(xhr);  //error occurred
            }
        });


          }
</script>

在webform2.aspx.cs

[System.Web.Services.WebMethod]
    public static string TestMethod(string fbid, string fbemail, string fbsex, string fbdob)
    {


        SqlConnection con = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataReader datareader;


        con = new SqlConnection(".......");
        cmd = new SqlCommand("SpFacebookInfo", con);
        con.Open();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@FbId", fbid);
        cmd.Parameters.AddWithValue("@FbEmail", fbemail);
        cmd.Parameters.AddWithValue("@FbSex", fbsex);
        cmd.Parameters.AddWithValue("@FbDob", fbdob);
        datareader = cmd.ExecuteReader();
        datareader.Close();

        return fbemail;


    }

            }      

答案 2 :(得分:0)

像你一样在隐藏变量中设置值并执行document.myform.submit();  转到Page_Load并读取变量