【问题标题】:What are and how to use '#' in URLs什么是以及如何在 URL 中使用“#”
【发布时间】:2012-01-02 14:27:01
【问题描述】:

在我的应用程序中,我有一个用于查看项目的布局页面:

此页面有 4 个子页面(详细信息、照片、地址和 cmets)。

示例:

/myproject = 打开详细信息页面

/myproject/Photos = 打开照片页面

/myproject/Addresses = 打开页面地址

/myproject/Comments = 打开cmets页面

问题

如何使用#通过ajax加载页面到URL?

示例

/myproject = 打开详细信息页面

/myproject#Photos = 打开照片页面

/myproject#Addresses = 打开页面地址

/myproject#Comments = 打开 cmets 的页面

在我有四个按钮的页面布局中,例如单击照片,页面将通过 ajax 加载。和网址去

来自/myproject

/myproject#Photos

简历

如何在asp.net MVC中使用'#'?

【问题讨论】:

  • 查看答案中的 cmets,您是否尝试创建包含哈希标签的链接,例如myproject#Photos 并且您希望他们简单地滚动到当前加载页面中的那个部分?
  • 我已经更新了我的答案,如果还不够清楚,请告诉我。

标签: asp.net-mvc-3 url razor


【解决方案1】:

它们通常称为 URL 片段,用作页面上的书签以导航到该页面的不同部分。单击时,它们会将当前加载的页面向下滚动到匹配的标签名称。我建议不要将它们用作不同页面的路径。

您可以通过在 Htmlhelper 中指定 fragment 将它们用作书签:

@Html.ActionLink("My Photos", "Action", "Controller", null, null, "Photos", null, null)

然后在代表照片子页面的照片部分中,将 html id 属性设置为 div 或标签中的“照片”或代表照片部分开头的任何内容。使用 @Html.ActionLink 创建的链接将查找与您在片段中键入的单词匹配的 html 元素 ID。

更多详情请见LinkExtensions.ActionLink Method

【讨论】:

  • 我不需要做任何其他事情,只要ID匹配片段(或哈希)就可以滚动完成?
【解决方案2】:

对不起,脑子放屁了……你需要客户端的一切……

我将使用以下 jQuery 插件来解析 URL 片段:

http://benalman.com/projects/jquery-urlinternal-plugin/

然后调用 MyDiv.Load('yourcontenthere') 将您想要的内容加载到所需的 DIV 中。

【讨论】:

  • 这两点都错了。他指的是 HTML5 之前的 AJAX 历史,而你不能通过路由来做到这一点。
  • 正是@SLaks!有四个页面是通过 ajax 加载的。我需要的是一种在 div 中通过 ajax 加载内容的方法,并在 url 中用 # (哈希,不知道该功能的名称)指示正在显示的内容。
猜你喜欢
  • 2021-07-23
  • 2010-12-31
  • 2013-06-03
  • 2015-09-08
  • 2022-01-10
  • 2015-03-13
相关资源
最近更新 更多