I'm trying to use Razor to inject a URL into a Javascript variable, and then redirect the browser to that URL. I need to do it this way as my application is fully AJAX based and I'm redirecting to a Facebook Authentication page.
The view that performs the client-side redirect looks like this:
@model Site.Core.ViewModels.Auth.FacebookCanvasLoginModel
<script type="text/javascript">
var redirectUrl = '@(Model.FacebookLoginUrl)';
window.top.location.href = redirectUrl;
</script>
The value of Model.FacebookLogin URL is generated by the Url.Action() helper in MVC.
the problem is that the location that is actually redirected to is:
http://dev.mydomain.net/Auth/RequestPermission?permissions=read_stream%2Cuser_photos&redirectUrl=http%3A%2F%2Fdev.mydomain.net%2Fnewsfeed%3F_%3D1328276903643
which contains &redirectUrl=
instead of &redirectUrl=
How do I pass this URL to window.location.href without the &
being encoded to &
whilst maintaining the redirectUrl as an encoded URL string?