【发布时间】:2012-02-03 14:01:11
【问题描述】:
我正在尝试使用 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>
Model.FacebookLogin URL 的值由 MVC 中的 Url.Action() 助手生成。
问题是实际重定向到的位置是:
http://dev.mydomain.net/Auth/RequestPermission?permissions=read_stream%2Cuser_photos&redirectUrl=http%3A%2F%2Fdev.mydomain.net%2Fnewsfeed%3F_%3D1328276903643
其中包含 &amp;redirectUrl= 而不是 &redirectUrl=
如何在不将 &amp; 编码为 &amp; 的情况下将此 URL 传递给 window.location.href,同时将 redirectUrl 保持为编码的 URL 字符串?
【问题讨论】:
-
FacebookLoginUrl方法中的代码是什么?它返回了什么?似乎这种方法是问题所在,并且在不应该添加编码时添加了编码。 (顺便说一下,为了争论,<a href="http://site.com/?foo&amp;bar">和&amp;是 proper way of generating a URL。)
标签: javascript asp.net-mvc-3 razor