在$ post jquery之后,Response.Redirect asp没有工作

时间:2014-05-09 02:25:08

标签: c# jquery asp.net facebook

我通过将值发布到currentpage

来做一些事情来传递Facebook的反应
 function testAPI() {
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me', function (response) {

                $.post('http://localhost:50790/TestPage.aspx',
                { fbid: response.id, firstname: response.first_name, lastname: response.last_name, email: response.email, bday: response.birthday },
                function (result) {

                });
                console.log('Good to see you, ' + response.name + response.id + response.email + response.gender + response.birthday + '.');

            });
        }

我在后面的代码上做了一些检查:

  protected void Page_Load(object sender, EventArgs e)
        {
            var fbid = Request.Form["fbid"];
            var fname = Request.Form["firstname"];
            var lname = Request.Form["lastname"];
            var email = Request.Form["email"];
            var bday = Request.Form["bday"];
            if (!Page.IsPostBack)
            {
                if (fbid != null)
                {

                    CheckFBLogin(fbid.ToString());
                }
            }

        }

我的测试在CheckFBLogin,如果结果没问题,它会让用户登录网站,否则它应该重定向到其他页面/注册页面。

 public void CheckFBLogin(string Fbid)
        {


            CustomerSelfCareSoapClient service = new CustomerSelfCareSoapClient();
            service.ClientCredentials.UserName.UserName = _Username;
            service.ClientCredentials.UserName.Password = _Password;
            GResult result = service.CheckFBLogin(Fbid.ToString(), "");
            if (result != null)
            {
                if (result.Code == 100)
                {
                    //login
                }
                else
                {

                    Response.Redirect("~/callback.aspx", true);

                }
            }
        } 

我不知道发生了什么,我通常做这样的事情来检查登录但纯粹的asp和c#。我知道为什么页面不会重定向?

1 个答案:

答案 0 :(得分:1)

我能够使用Mono复制此行为。在我的系统上,问题是jquery $ post()方法实际上在后面的代码中启用了Page.IsPostBack属性,以便if (!Page.IsPostBack) {}条件中的所有逻辑都无法运行。

我的建议是使用ASP.NET的[WebMethod]属性和jquery。 Dave Ward has documented this well。如果您正在进行大量异步客户端JSON调用,那么如果项目的范围允许,您可以考虑ASP.NET的MVC实现。