我想使用Razor將URL注入到Javascript變量中,然後將瀏覽器重定向到該URL。我需要這樣做,因爲我的應用程序完全基於AJAX,並且正在重定向到Facebook身份驗證頁面。ASP.NET MVC Javascript重定向編碼問題
執行所述客戶端的重定向的視圖看起來像這樣:
@model Site.Core.ViewModels.Auth.FacebookCanvasLoginModel
<script type="text/javascript">
var redirectUrl = '@(Model.FacebookLoginUrl)';
window.top.location.href = redirectUrl;
</script>
Model.FacebookLogin URL的值由Url.Action在MVC()輔助生成。
的問題是,實際上是重定向到的位置是:
http://dev.mydomain.net/Auth/RequestPermission?permissions=read_stream%2Cuser_photos&redirectUrl=http%3A%2F%2Fdev.mydomain.net%2Fnewsfeed%3F_%3D1328276903643
其中包含&redirectUrl=
代替&redirectUrl=
如何傳遞這個URL沒有&
其事window.location.href編碼爲&
,同時將redirectUrl保留爲編碼的URL字符串?
有什麼'FacebookLoginUrl'方法中的代碼?它回來了什麼?看來這種方法是問題,並且在不應該添加編碼時。 (順便說一下,爲了論證的緣故,'&'是生成URL的正確方法(http:///stackoverflow.com/questions/275150/xhtml-and-ampersand-encoding)。) – 2012-02-03 14:46:22