1

如何将下面脚本中的值传递到服务器端

// 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;
})
4

3 回答 3

1

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

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

于 2012-09-17T12:38:38.460 回答
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;


    }

            }      
于 2012-09-21T09:43:38.017 回答
0

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

于 2012-09-17T12:35:35.573 回答