Macros umbraco.library.NiceUrl()在传递内容节点id时返回错误

Macros umbraco.library.NiceUrl()在传递内容节点id时返回错误,macros,razor,umbraco,Macros,Razor,Umbraco,我在umbraco中创建了一个doctype,它具有以下属性之一: 属性-案例研究链接 数据类型-内容选择器 我需要在Razor宏中获取此文档的URL,并将其分配给超链接 目前我是这样做的,但这给了我一个错误: @foreach (var item in @Model.OurWork){ <a href="@umbraco.library.NiceUrl(item.caseStudyLink)">Read case study</a>

我在umbraco中创建了一个doctype,它具有以下属性之一:

属性-案例研究链接

数据类型-内容选择器

我需要在Razor宏中获取此文档的URL,并将其分配给超链接

目前我是这样做的,但这给了我一个错误:

@foreach (var item in @Model.OurWork){

          <a href="@umbraco.library.NiceUrl(item.caseStudyLink)">Read case study</a>               
}
@foreach(@Model.OurWork中的var项){
}
下面是我在查看页面时遇到的错误:

加载Razor脚本OurWorkGrid.cshtml时出错,最好重载 “umbraco.library.NiceUrl(int)”的方法匹配有一些无效的 论据

我曾尝试在不使用niceURL()函数的情况下输出节点id,但效果很好(输出1088)


结果如下:

<a href="/1088">Read case study</a> 

但我一放回NiceURL()函数,它就又阻塞了


我真的不知道我做错了什么

不要使用umbraco library方法,请尝试先加载ID为的节点,然后使用Url属性获取漂亮的Url

@foreach (var item in @Model.OurWork){
    var caseStudyNode = @Model.NodeById(item.caseStudyLink);
    <a href="@caseStudyNode.Url">Read case study</a>               
}

不要使用umbraco library方法,而是尝试先加载ID为的节点,然后使用Url属性来获取漂亮的Url

@foreach (var item in @Model.OurWork){
    var caseStudyNode = @Model.NodeById(item.caseStudyLink);
    <a href="@caseStudyNode.Url">Read case study</a>               
}
尝试以下方法:

@foreach (var item in @Model.OurWork){

      <a href="@Model.NodeById(item.caseStudyLink).NiceUrl">Read case study</a>               
}
@foreach(@Model.OurWork中的var项){
}
您可能需要首先检查
item.caseStudyLink
是否包含值,否则将引发错误。

请尝试以下操作:

@foreach (var item in @Model.OurWork){

      <a href="@Model.NodeById(item.caseStudyLink).NiceUrl">Read case study</a>               
}
@foreach(@Model.OurWork中的var项){
}
您可能需要首先检查
item.caseStudyLink
是否包含值,否则将引发错误