【发布时间】:2014-06-30 15:18:24
【问题描述】:
我正在开发一个使用Angular.js 和ASP.NET MVC 的应用程序。 angular.js 的路由包含一个“#”。无需登录即可查看应用程序中的某些页面。但是,这些页面包含应用程序中需要用户登录的页面的 URL。它们看起来像:
<a href="~/#/shop/voucher/6bc1">Want this voucher?</a>
因此,当点击这些链接时,MVC 表单身份验证会重定向到登录页面,返回 URL 查询字符串如下所示:
http://localhost:18030/signin?ReturnUrl=%2f#/shop/voucher/6bc1
所以在登录页面上,当我尝试查看查询字符串时,我只得到返回 URL 的“/”,因为那是 %2f 部分。由于#,我失去了剩余的价值。
如果我尝试对链接进行 URL 编码,# 和其他“/”字符会被编码,但随后路由会变得混乱,我会收到 404 错误。
是否可以访问带有“#”的完整查询字符串值?我不确定为什么表单身份验证不编码#。
【问题讨论】:
标签: asp.net-mvc angularjs razor forms-authentication query-string