传递具有哈希值的URL以进行重定向

时间:2012-08-21 10:36:41

标签: c# asp.net-mvc-3

  

可能重复:
  How to get Url Hash (#) from server side

我从变量中获取哈希值时遇到了一些麻烦。

我正在使用AccountController

中的默认操作
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl) { ... }

但如果我通过此链接:

http://localhost:1357/none/Account/LogOn?returnUrl=a/b/c#day-22

我永远无法捕获#day-22

下面是登录后的断点:

enter image description here

我从未在HttpContext.Request.Url对象上获得哈希值。

  

我该怎么做将用户转发到带有哈希部分的正确网址

3 个答案:

答案 0 :(得分:5)

你需要对它进行urlencode。

尝试:http://localhost:1357/none/Account/LogOn?returnUrl=a/b/c%23day-22

答案 1 :(得分:1)

这是不可能的,因为URL片段(#之后的位)不会从浏览器发送到服务器。

答案 2 :(得分:0)

在形成/解析该部分时使用HttpUtility.UrlEncodeHttpUtility.UrlDecode