ASP.NET MVC Javascript重定向编码问题

ASP.NET MVC Javascript重定向编码问题,javascript,asp.net-mvc-3,razor,Javascript,Asp.net Mvc 3,Razor,我试图使用Razor将URL注入Javascript变量,然后将浏览器重定向到该URL。我需要这样做,因为我的应用程序完全基于AJAX,并且我正在重定向到Facebook验证页面 执行客户端重定向的视图如下所示: @model Site.Core.ViewModels.Auth.FacebookCanvasLoginModel <script type="text/javascript"> var redirectUrl = '@(Model.FacebookLoginUr

我试图使用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=
而不是
&重定向URL=


如何将此URL传递到window.location.href,而不将
&
编码为
&
在将重定向URL保持为编码的URL字符串时?

您需要获取原始值,以便它不会对值进行html编码

@Html.Raw(Model.FacebookLoginUrl)
你把它放在javascript中,你会想逃避任何可能搞糟你的javascript的东西。所以试试这个:

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

供您参考:

FacebookLoginUrl方法中的代码是什么?它回来了什么?似乎这个方法就是问题所在,并且在不应该的时候添加了编码。(顺便说一句,为了论证起见,有
)传奇!非常感谢。很高兴让你得了1000分-我已经坚持了好几个小时:-)
var redirectUrl = @Html.Raw(Json.Encode(Model.FacebookLoginUrl))