如何在Asp.Net 4中路由带有#字符的Url?
如何路由包含 # 尖锐字符的 url,如下所示: 〜/page.aspx#/Home 成为: 〜/首页
How to route url contains # sharp character like this:
~/page.aspx#/Home
to be:
~/Home
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
URL 中的
#
引用命名锚点 () 标记,并且不会传递到服务器。
~/page.aspx#/Home
指的是页面page.aspx
上名为/home
的锚点。服务器只会收到对
page.aspx
的请求,并且#
以后的任何内容都不会被传递。请参阅这个所以问题和答案。
换句话说 - 如果 URL 中的
#
字符没有引用文档中的命名锚点,则不要使用它们,因为您将无法在服务器中路由这些字符。The
#
in a URL refers to a named anchor (<a name="xxx" />
) tag and does not get passed through to the server.~/page.aspx#/Home
refers to the anchor named/home
on the pagepage.aspx
.The server will only get the request to
page.aspx
and anything from the#
onwards will not be passed through.See this SO question and answers.
In other words - do not use the
#
character in your URL if they do not refer to a named anchor within the document, as you will not be able to get these routed in the server.我认为奥德在这里有正确的答案。
但是,如果碰巧遇到 # 出现在用户输入的数据中的情况,则应先对其进行 URL 转义,然后再将其放入 URL 中。
#/Home
将会是%23/Home
但是,我感觉这里实际上并非如此。
I think Oded has the right answer here.
But if you happen to have a situation where the # is in user entered data, you should URL escape it before putting it in the URL.
#/Home
would then be%23/Home
However, I get the feeling this isn't actually the case here.