我需要实现哈希值,即Url应如下所示:
/家庭/索引/#创建
为此添加了一条路线:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/#{detail}", // URL with parameters
new { controller = "Login", action = "LogIn", detail =""} // Parameter defaults
);
访问/home/index/#create
时,它会将我重定向到默认路由。
如何做到这一点?
答案 0 :(得分:107)
如上所述,使用路由无法做到这一点。唯一可行的解决方案是在控制器的操作中重定向时将#片段附加到您的URL。例如
return Redirect(Url.Action("Index", "Home") + "#create");
答案 1 :(得分:51)
您无法在服务器上的#
符号后面获取值,因为此值永远不会发送到服务器。只有客户端javascript可以访问这个,所以定义带有哈希的路由没有多大意义。
答案 2 :(得分:7)
当浏览器发出URL请求时,它不会在散列后向服务器发送任何内容。此路由可以使您生成包含哈希值的路由URL,但是当用户导航到此类URL时,无法执行任何操作服务器端。这就是网络的运作方式......
答案 3 :(得分:0)
OAuth 2.0隐式流
如果这与OAuth 2.0 Implicit Flow
有关,则应改用Authorization Code Grant
。