2012-02-03 20 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で()ヘルパーによって生成されます。

問題は、実際にリダイレクトされている場所があるということです。

&amp;redirectUrl=の代わりに、私は &されずにwindow.location.hrefするために、このURLを渡すにはどうすればよい &redirectUrl=

が含まれてい

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

コード化されたURL文字列としてredirectUrlを維持しながら&amp;にエンコードされていますか?

+1

'FacebookLoginUrl'メソッド内のコードは何ですか?それは何を返すのですか?この方法が問題であり、そうでないときにエンコーディングを追加しているようです。 (ところで、議論のために、 '&'を持つ ''を[URLを生成する適切な方法](http: /stackoverflow.com/questions/275150/xhtml-and-ampersand-encoding)) –

答えて