1

私はこのコントローラーを持っています

[HttpPost]
public ActionResult Compose(ComposeMessage composeMessage)
{
    var message = "";
    dynamic fbPost = new ExpandoObject();
    fbPost.message = composeMessage.Message;
    dynamic result = FBHelper.PostInFacebook(fbPost, associatedAccount.ProviderAccessToken);
    if (((IDictionary<String, object>)result).ContainsKey("error"))
    {
        Session["PostMessage"] = fbPost;
        var redirectUrl = FBHelper.GetLoginUrl("email,read_stream,publish_stream");
        //HttpContext.ClearError();
        //the below redirect does not work
        Redirect(redirectUrl);
        //message = "Posting to Facebook failed. \n";
    }
    else
    {
        message = "Posting to Facebook successful. \n";
    }
    return Json(new { success = message });
}

ここで私が基本的にやろうとしているのは、アクセス トークンの有効期限が切れた場合に Facebook OAuth にリダイレクトすることです。
しかし、コードRedirect(redirectUrl);はまったく発火しません。私の質問は

  1. コードの何が問題になっていますか?
  2. リダイレクトが起動しないのはなぜですか?
4

2 に答える 2

1

リダイレクトを返す必要がありますActionResult:

return Redirect(redirectUrl);
于 2012-04-28T14:47:07.100 に答える
1

[HttpPost] 属性のためだと思います。URL をクライアントに渡し、navigate() を呼び出すか、window.location = myurl.

于 2012-04-28T14:38:14.753 に答える