web-dev-qa-db-fra.com

comment rediriger vers une URL externe à partir du contrôleur c #

J'utilise un contrôleur c # comme service Web.

Dans ce document, je souhaite rediriger l'utilisateur vers une URL externe.

Comment fait-on ça?

A essayé:

System.Web.HttpContext.Current.Response.Redirect

mais ça n'a pas marché.

68
Elad Benda

Utilisez la méthode Redirect () du contrôleur.

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

Mettre à jour

Vous ne pouvez pas effectuer directement une redirection côté serveur à partir d'une réponse ajax. Vous pouvez cependant renvoyer un JsonResult avec la nouvelle URL et effectuer la redirection avec javascript.

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

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

Essaye ça:

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

Si vous utilisez MVC, il serait plus approprié d'utiliser RedirectResult au lieu d'utiliser Response.Redirect.

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

Référence - https://blogs.msdn.Microsoft.com/rickandy/2012/03/01/response-redirect-and-asp-net-mvc-do-not-mix/

10
EndlessSpace