【问题标题】:Pass URL's with hash value for redirection [duplicate]传递带有哈希值的 URL 以进行重定向 [重复]
【发布时间】:2012-08-16 16:39:57
【问题描述】:

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

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

我正在使用AccountController 中的默认操作

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl) { ... }

但如果我通过此链接:

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

我永远无法捕捉到#day-22 的值

下面是登录后的断点:

我从来没有得到 HttpContext.Request.Url 对象的哈希值。

我可以做些什么将用户转发到正确的 URL带有哈希部分?

【问题讨论】:

  • @GovindKamalaPrakashMalviya 不完全一样。

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


【解决方案1】:

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

【讨论】:

  • 爱若昂。那么,我怎样才能得到它呢?
  • 您需要通过其他实际上允许向服务器发送信息的机制发送该信息,例如隐藏字段。
【解决方案2】:

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

【讨论】:

  • 字符串永远不会到达服务器...无论我使用什么解码工具,值都不存在!
【解决方案3】:

您需要对其进行 urlencode。

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

【讨论】:

  • 很好用,感谢您的想法,这是一个简单的,甚至我都没有想过要测试 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 2019-10-28
相关资源
最近更新 更多