umbraco razor-从内容中获取字段
我有6个相同内容类型的项目“新闻”,在每个项目中我有一个字段newsIntro。我想将特定页面中的字段放在另一个页面上,因此我需要针对一个特定字段,以便它可能是节点1702上的newsIntro。我试过一些东西,比如 @1720.新闻简介 如何针对特定字段umbraco razor-从内容中获取字段,razor,field,umbraco,umbraco-webforms,Razor,Field,Umbraco,Umbraco Webforms,我有6个相同内容类型的项目“新闻”,在每个项目中我有一个字段newsIntro。我想将特定页面中的字段放在另一个页面上,因此我需要针对一个特定字段,以便它可能是节点1702上的newsIntro。我试过一些东西,比如 @1720.新闻简介 如何针对特定字段 谢谢在学习Razor时,您应该查看一些很棒的资源: -一个由八部分组成的博客文章系列,介绍了Umbraco 4.7中的许多新剃须刀功能,并附有示例 -RazorDynamicNode对象可用的所有属性和方法的PDF(包括@Model) -一个
谢谢在学习Razor时,您应该查看一些很棒的资源:
DynamicNode
对象可用的所有属性和方法的PDF(包括@Model
)DynamicNode
对象,然后使用属性别名访问属性值。例如:
@{
//Get the node
dynamic node = Library.NodeById(1720);
// Display the property
@node.newsIntro
}
要从当前页面访问属性,只需使用Model
:
@Model.newsIntro
或
或
对于Umbraco 7,我使用以下代码从不同页面获取属性:
@Umbraco.Content(1720).newsIntro
首先,从TypedContent方法获取IPPublishedContent对象,然后使用GetPropertyValue检索字段的值
@{
int nodeId = 1720;
IPublishedContent contentNode = Umbraco.TypedContent(nodeId);
var newsIntro = contentNode.GetPropertyValue("newsIntro");
}
<p>@newsIntro</p>
@{
int nodeId=1720;
IPPublishedContent contentNode=Umbraco.TypedContent(nodeId);
var newintro=contentNode.GetPropertyValue(“newintro”);
}
@新闻介绍
如果内容项1720是要使用该值的页面的父项或父项,则可以按如下方式递归获取该值:
@Umbraco.Field("newsIntro", recursive: true)
要从内容中获取字段,我使用了以下方法:
@{
var selection = Umbraco.TypedContent(contentId).Children()
.Where(x => x.IsVisible())
.OrderBy("CreateDate");
}
@foreach(var item in selection){
@item.GetPropertyValue("fieldName1")
@item.GetPropertyValue("fieldName2")
@item.GetPropertyValue("fieldName_N")
}
这正是我所需要的。我在
foreach
循环中需要它,因此它在选择中已经有var项
,所以我只是将上面的内容更改为Umbraco.TypedContent(item.Id)
,并省略了第一行。工作得很好!要从foreach
中获取它(例如使用查询生成器),请将硬编码id(1720
)替换为item.id
)。
@Umbraco.Field("newsIntro", recursive: true)
@{
var selection = Umbraco.TypedContent(contentId).Children()
.Where(x => x.IsVisible())
.OrderBy("CreateDate");
}
@foreach(var item in selection){
@item.GetPropertyValue("fieldName1")
@item.GetPropertyValue("fieldName2")
@item.GetPropertyValue("fieldName_N")
}