web-dev-qa-db-ja.com

C#コントローラーから外部URLにリダイレクトする方法

Webサービスとしてc#コントローラーを使用しています。

その中で、ユーザーを外部URLにリダイレクトします。

どうすればいいのですか?

試した:

System.Web.HttpContext.Current.Response.Redirect

しかし、うまくいきませんでした。

68
Elad Benda

コントローラーの Redirect() メソッドを使用します。

public ActionResult YourAction()
{
    // ...
    return Redirect("http://www.example.com");
}

更新

Ajax応答からサーバー側のリダイレクトを直接実行することはできません。ただし、新しいURLでJsonResultを返し、javascriptでリダイレクトを実行できます。

public ActionResult YourAction()
{
    // ...
    return Json(new {url = "http://www.example.com"});
}

$.post("@Url.Action("YourAction")", function(data) {
    window.location = data.url;
});
122
jrummell

これを試して:

return Redirect("http://www.website.com");
11
Tom Chantler

MVCを使用している場合、Response.Redirectを使用する代わりに、 RedirectResult を使用する方が適切です。

public ActionResult Index() {
        return new RedirectResult("http://www.website.com");
    }

リファレンス- https://blogs.msdn.Microsoft.com/rickandy/2012/03/01/response-redirect-and-asp-net-mvc-do-not-mix/

10
EndlessSpace