假设我有一个控制器和一个动作:
public Questions extends BaseController {
public static void show(id) {
// how to get the anchor here??
}
}
包含http://aaa.com/questions/show?id=123#555
等锚点的网址会映射到此操作,我们如何才能获得555
锚点show
?
答案 0 :(得分:5)
要将锚添加到url,我使用重定向方法和Router类,所以对于你的情况:
public Questions extends BaseController {
public static void show(id) {
some stuff...
Map<String, Object> args = new HashMap<String, Object>();
args.put("id", questionID);
String url = Router.getFullUrl("Questions.show", args);
redirect(url + "#555");
}
}
答案 1 :(得分:3)
如果我理解正确,则无法将URL的锚点部分作为http请求的一部分发送回服务器。它仅在本地使用,用于锚定页面以进行页面内导航。
有关详情Retrieving Anchor Link In URL for ASP.Net
,请参阅此帖子但是,如果要在视图中添加锚点,而不是使用重定向并在控制器中使用路由器,则只需在视图中(最佳位置)进行操作即可。
<a href='@{Questions.show(id)}#555'>link to question</a>