umbraco.library.NiceUrl() 在传递内容节点 id 时返回错误
我在 umbraco 中创建了一个文档类型,它具有以下属性之一:
属性 - 案例研究链接
数据类型 - 内容选择器
我需要在 Razor 中获取此文档的 URL宏并将其分配给超链接。
目前我正在这样做,但它给了我一个错误:
@foreach (var item in @Model.OurWork){
<a href="@umbraco.library.NiceUrl(item.caseStudyLink)">Read case study</a>
}
这是我在查看页面时遇到的错误:
加载Razor脚本OurWorkGrid.cshtml时出错 最好重载 'umbraco.library.NiceUrl(int)' 的方法匹配有一些无效 论据
我尝试在不使用niceURL()函数的
<a href="@item.caseStudyLink">Read case study</a>
下输出节点id,并且它工作正常(输出1088)。结果是这样的:
<a href="/1088">Read case study</a>
但是当我放回 NiceURL() 函数时,它又卡住了。
我真的不知道我在这里做错了什么!
I have created a doctype in umbraco which has one of the following property:
Property - Case study link
Datatype - Content picker
I need to fetch the URL of this document in a Razor macro and assign it to a hyperlink.
Currently am doing it in this way but it's giving me an error:
@foreach (var item in @Model.OurWork){
<a href="@umbraco.library.NiceUrl(item.caseStudyLink)">Read case study</a>
}
And here is the error I get on viewing the page:
Error loading Razor Script OurWorkGrid.cshtml The best overloaded
method match for 'umbraco.library.NiceUrl(int)' has some invalid
arguments
I have tried outputting the node id without using the niceURL() function and it works fine (outputs 1088).
<a href="@item.caseStudyLink">Read case study</a>
results in this:
<a href="/1088">Read case study</a>
But as soon as I put back NiceURL() function, it chokes again.
I really don't know what am I doing wrong here!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用 umbraco 库方法,而是尝试先加载具有 ID 的节点,然后使用 Url 属性获取良好的 URL。
另外,添加某种形式的检查以确保设置该值,以防它不是文档类型的强制属性。这是一个例子:
Instead of using the umbraco library method, try loading the node with the ID first, and then using the Url property to get the nice URL.
Also, add some form of a check to make sure the value is set, in case it's not a mandatory property on the doc type. Here's one example:
尝试如下操作:
您可能需要首先检查
item.caseStudyLink
是否包含值,否则会引发错误。Try something like:
You may want to check first whether
item.caseStudyLink
contains a value because this will throw an error otherwise.