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

我认为它是因为 [HttpPost] 属性。您可以将您的 url 传递给客户端并调用 navigate() 或 window.location = myurl。

于 2012-04-28T14:38:14.753 回答
1

您需要返回重定向ActionResult

return Redirect(redirectUrl);
于 2012-04-28T14:47:07.100 回答