Umbraco - <a> tags

时间:2016-06-16 12:19:25

标签: asp.net-mvc razor umbraco asp.net-mvc-partialview

I am trying to use a content picker's value for a href in a partial view but I am struggling to get the format right...

I have been using

@(node.GetPropertyValue("propertyAlias"))

but when I use this in an it just displays the ID of the node. How can I get it to give me the URL of the node?

<a href="@(node.GetPropertyValue("link"))">Link</a>



    @inherits Umbraco.Web.Mvc.UmbracoTemplatePage
    @{
        var items = CurrentPage.FirstChild("folder").Children("item").Where("Visible");

    }

    <div class="row tile-row">
        @foreach(var node in items)
        {
            <div class="col-md-3">
                <div class="tile">
                    <h3>@(node.GetPropertyValue("itemTitle"))</h3>
                    @(node.GetPropertyValue("itemBodyText"))<br/>
                    @(node.getPropertyValue("itemButtonLink"))

<a class="btn btn-more" href="@(node.GetPropertyValue("itemeButtonLink"))">
   @(node.GetPropertyValue("itemButtonText"))
</a>            


                </div>  
            </div>
        }
    </div><!--/.row-->

2 个答案:

答案 0 :(得分:2)

您可以使用:

@Umbraco.NiceUrl(id of the node)

如果您还想要域名:

@Umbraco.NiceUrlWithDomain(id of the node)

更新:

@{
  if (Model.Content.HasValue("contentPicker")){
    var node = Umbraco.TypedContent(Model.Content.GetPropertyValue<int>("contentPicker"));
    <a href="@node.Url">@node.Name</a>
  }
}

其中contentPicker将是您的内容搜索器数据类型的属性别名。

答案 1 :(得分:1)

我设法使用下面的代码获取该项目的网址

<p>@Umbraco.NiceUrl(node.GetPropertyValue<int>("itemButtonLink"))</p>

<a href="@Umbraco.NiceUrl(node.GetPropertyValue<int>("itemButtonLink"))">
    @(node.GetPropertyValue("itemButtonText")
</a>

我希望这可以帮助那些一直在努力解决同一问题的人 - 信用欠 - https://gist.github.com/tobbbe/7784542