ASP.NET MVC Javascript Redirect проблема с кодировкой - PullRequest
2 голосов
/ 03 февраля 2012

Я пытаюсь использовать Razor для вставки URL-адреса в переменную Javascript, а затем перенаправить браузер на этот URL-адрес. Мне нужно сделать это таким образом, поскольку мое приложение полностью основано на AJAX, и я перенаправляю на страницу аутентификации Facebook.

Представление, которое выполняет перенаправление на стороне клиента, выглядит следующим образом:

@model Site.Core.ViewModels.Auth.FacebookCanvasLoginModel

<script type="text/javascript">
    var redirectUrl = '@(Model.FacebookLoginUrl)';

    window.top.location.href = redirectUrl;
</script>

Значение URL-адреса Model.FacebookLogin создается помощником Url.Action () в MVC.

проблема в том, что местоположение, на которое фактически перенаправлено:

http://dev.mydomain.net/Auth/RequestPermission?permissions=read_stream%2Cuser_photos&amp;redirectUrl=http%3A%2F%2Fdev.mydomain.net%2Fnewsfeed%3F_%3D1328276903643

, который содержит &amp;redirectUrl= вместо &redirectUrl=

Как передать этот URL-адрес в window.location.href без кодирования & в &amp;, сохраняя при этом redirectUrl в качестве зашифрованной строки URL-адреса?

1 Ответ

6 голосов
/ 03 февраля 2012

Вам нужно получить необработанное значение, чтобы оно не кодировало значение в HTMLJavaScript.Так попробуйте это:

var redirectUrl = @Html.Raw(Json.Encode(Model.FacebookLoginUrl))

Для справки: класс Json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...