Content management system umbraco 4.11中的标签与stackoverflow一样

Content management system umbraco 4.11中的标签与stackoverflow一样,content-management-system,umbraco,umbraco-tags,Content Management System,Umbraco,Umbraco Tags,im使用snipper标签系统和以下文章: 我可以成功安装和使用snipper标签系统。但是当我浏览页面时..标签显示为文本而不是超链接 是的,我错过了什么。是javascript文件还是我遗漏了一些包含标签的步骤 有什么想法吗? 这是我的页面: 这里,由于snipper的原因,相关的标记出现了。但是它们是不可点击的。如果您需要创建标记作为链接选项来显示标记的产品,那么您可以创建名为../search.aspx?tag=tagname的新页面 然后搜索该标签中的产品,代码如下: @inher

im使用snipper标签系统和以下文章:

我可以成功安装和使用snipper标签系统。但是当我浏览页面时..标签显示为文本而不是超链接

是的,我错过了什么。是javascript文件还是我遗漏了一些包含标签的步骤

有什么想法吗? 这是我的页面:


这里,由于snipper的原因,相关的标记出现了。但是它们是不可点击的。

如果您需要创建标记作为链接选项来显示标记的产品,那么您可以创建名为../search.aspx?tag=tagname的新页面 然后搜索该标签中的产品,代码如下:

@inherits umbraco.MacroEngines.DynamicNodeContext
@using System.Text
@using umbraco.MacroEngines
@using umbraco.cms.businesslogic.Tags

@{   
    string searchFor = Request["tags"];

    if(string.IsNullOrEmpty(searchFor))
    {
        @* No tags were specified *@ 
        <p>Please specify a tag to search for</p>
        return;
    }

    // this is to search from the tags added and then get all the nodes
    var matchingNodes = Tag.GetNodesWithTags(searchFor).ToList();

    string tagsText = searchFor.Split(',').Count() > 1 ? "tags" : "tag";

    if (matchingNodes.Count < 1)
    {
       @* No results were found for the specified tags *@ 
       <p>No tagged items were found that matched the @tagsText: @searchFor</p>
       return;        
    }

     @* Some results were found for the specified tags *@ 
     <p><strong>@matchingNodes.Count</strong> products were found that matched the @tagsText: "@searchFor"</p>

      <ul>

      // go through the code and create URL for that product
      @foreach (var node in matchingNodes)
      {
        dynamic dn = new DynamicNode(node.Id);

        <li><a href="@dn.Url">@dn.Name</a></li>
      }
      </ul>
}
@继承umbraco.MacroEngines.dynamicontext
@使用System.Text
@使用umbraco.macro引擎
@使用umbraco.cms.businesslogic.Tags
@{   
字符串searchFor=Request[“tags”];
if(string.IsNullOrEmpty(searchFor))
{
@*未指定任何标记*@
请指定要搜索的标记

返回; } //这是从添加的标记中进行搜索,然后获取所有节点 var matchingNodes=Tag.GetNodesWithTags(searchFor.ToList(); 字符串tagsText=searchFor.Split(',').Count()>1?“标记”:“标记”; if(matchingNodes.Count<1) { @*未找到指定标记的结果*@ 未找到与@tagsText:@searchFor匹配的标记项

返回; } @*找到指定标记的一些结果*@ @matchingNodes.Count找到了与@tagsText:“@searchFor”匹配的产品

    //检查代码并为该产品创建URL @foreach(匹配节点中的var节点) { 动态dn=新的动态节点(node.Id);
  • }
}
您可以参考这篇文章,因为我已经检查过了,中途您将看到这段代码


如果需要更多的解释,请告诉我。我已经对此进行了注释,以便您能够了解代码的简介。

您确定要这样做吗

<ul>
  @foreach (var node in matchingNodes)
  {
    dynamic dn = new DynamicNode(node.Id);

    <li><a href="@dn.Url">@dn.Name</a></li>
  }
</ul>
    @foreach(匹配节点中的var节点) { 动态dn=新的动态节点(node.Id);
  • }
这里有些东西看起来不对劲,你正在显示你的标签:

这两个链接来自哪里


不需要javascript或任何花哨的东西。这一切都是在服务器端的razor中完成的。

我编写了狙击手标签控件

如果您想要标签的友好URL, 创建重写规则以映射/tags/([\w]*)重写到tagsearch.aspx?tag=$1
然后实现tagsearch.aspx以获取该标记参数,并返回包含该参数的所有页面,如上所述。

Hi Ankur感谢您的回答。这是有用的,虽然不完全是我想要的。我希望标签url和stackoverflow一样。嗨,Daniel,在我实现Ankur的代码后,你看到了链接。现在我可以有链接,但我想要的是stackoverflow类型的标记URL。