2012-02-03 112 views
2

我想使用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&amp;redirectUrl=http%3A%2F%2Fdev.mydomain.net%2Fnewsfeed%3F_%3D1328276903643 

其中包含&amp;redirectUrl=代替&redirectUrl=

如何傳遞這個URL沒有&其事window.location.href編碼爲&amp;,同時將redirectUrl保留爲編碼的URL字符串?

+1

有什麼'FacebookLoginUrl'方法中的代碼?它回來了什麼?看來這種方法是問題,並且在不應該添加編碼時。 (順便說一下,爲了論證的緣故,'&'是生成URL的正確方法(http:///stackoverflow.com/questions/275150/xhtml-and-ampersand-encoding)。) – 2012-02-03 14:46:22

回答