how to redirect to external url from c# controller

C#asp.net MvcWeb Services

C# Problem Overview


I'm using a c# controller as web-service.

In it I want to redirect the user to an external url.

How do I do it?

Tried:

System.Web.HttpContext.Current.Response.Redirect

but it didn't work.

C# Solutions


Solution 1 - C#

Use the Controller's Redirect() method.

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

Update

You can't directly perform a server side redirect from an ajax response. You could, however, return a JsonResult with the new url and perform the redirect with javascript.

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

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

Solution 2 - C#

If you are using MVC then it would be more appropriate to use [RedirectResult][1] instead of using Response.Redirect.

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

Reference - https://blogs.msdn.microsoft.com/rickandy/2012/03/01/response-redirect-and-asp-net-mvc-do-not-mix/

[1]: https://msdn.microsoft.com/en-us/library/system.web.mvc.redirectresult(v=vs.108).aspx "RedirectResult"

Solution 3 - C#

Try this:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionElad BendaView Question on Stackoverflow
Solution 1 - C#jrummellView Answer on Stackoverflow
Solution 2 - C#EndlessSpaceView Answer on Stackoverflow
Solution 3 - C#Tom ChantlerView Answer on Stackoverflow