【问题标题】:Read anchor from URL in ASP.NET MVC 3从 ASP.NET MVC 3 中的 URL 读取锚点
【发布时间】:2013-05-22 14:35:16
【问题描述】:

如何在控制器操作中从 URL 读取锚点。

示例网址:www.site.com/some-action#anchor-what-i-want-read

public ActionResult SomeAction()
{
    // Here i want read the anchor
}

原因: 我需要通过锚标签为 facebook 设置 og:image。因为我页面上有太多的项目。所以自动 facebook 图片获取不起作用。我使用锚点直接导航到页面上的产品。

最终解决方案:

我将可选的 URL 参数添加到链接 www.site.com/some-action/id 中,因此我可以通过此参数解析 FB og:image,并使用 JS pro 导航到锚点通过该参数形式的 URL。

【问题讨论】:

  • 该值不会自动传递给服务器。您必须使用一些 JavaScript 和/或隐藏的表单字段等手动传递它。您实际上想要完成什么?您如何获得此操作方法以及它需要哪些信息?有可能有更好的方法来实现最终目标,而无需走这条路。
  • 你想做什么?应该有更好的方法
  • 我添加了这个解决方案的原因
  • @David 我无法传递任何表单的字段,我只需要使用 GET 请求:/
  • @JinDave:然后,您需要将值添加到查询字符串中。类似于:www.site.com/some-action?key=value 然后你会在 action 方法中将其作为方法参数读取:public ActionResult SomeAction(string key) 查询字符串值(特别是键/值对)是通过 GET 请求发送数据的方式。

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


【解决方案1】:

在我的项目中,所有这些操作都使用 $.ajax() 加载。像这样:

var href = window.location.href;
href = href.substr(0, href.indexOf('#'));
href += (href.indexOf("?") == -1 ? "?" : "&") + "hashvalue=" + window.location.hash.substr(1);
$.ajax({
 url: href,
 success: function(response){
  // write to content holder this response
 }
});

说实话,我所有的动作都是http://my.site.com/#!controllername/actionname@

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多