2

我有 6 个相同内容类型的项目“新闻”,在每个项目中我都有一个字段 newsIntro。我想将字段放在另一个页面上的特定页面中,因此我需要定位一个特定字段,因此它可能是节点 1702 上的 newsIntro。我尝试了一些类似的方法

@1720.newsIntro

如何定位特定领域

谢谢

4

5 回答 5

15

在学习 Razor 时,您应该查看一些很棒的资源:

  1. Umbraco Razor Feature Walkthrough - 由八部分组成的博客文章系列,其中包含 Umbraco 4.7 中的许多新 Razor 功能以及示例。

  2. Razor DynamicNode 备忘单DynamicNode- Razor对象(包括@Model)可用的所有属性和方法的 PDF 。

  3. Cultiv Razor 示例- 一个 Umbraco 网站,您可以下载并使用 WebMatrix 或 IIS 打开,并查看使用 Razor 访问属性的各种方法。

  4. Razor 片段- 来自 Our Umbraco 的不同片段、示例等的汇编。

但在回答您的问题时,要获取特定节点的属性,您必须首先获取实际DynamicNode对象,然后使用属性别名来访问属性值。例子:

@{
    //Get the node
    dynamic node = Library.NodeById(1720);

    // Display the property
    @node.newsIntro
}

要从当前页面访问属性,您只需使用Model

@Model.newsIntro

或者

@Model.bodyText

或者

@Model.Name
于 2012-06-20T12:43:00.497 回答
5

首先,从 TypedContent 方法中获取一个 IPublishedContent 对象,然后使用 GetPropertyValue 检索该字段的值。

@{
  int nodeId = 1720;
  IPublishedContent contentNode = Umbraco.TypedContent(nodeId);
  var newsIntro = contentNode.GetPropertyValue("newsIntro");
}

<p>@newsIntro</p>
于 2015-04-23T19:08:06.023 回答
2

使用 Umbraco 7,我使用此代码从不同页面获取属性:

@Umbraco.Content(1720).newsIntro
于 2014-07-29T08:05:46.360 回答
0

如果内容项 1720 是要使用该值的页面的父级或祖先,则可以像这样递归地获取它:

@Umbraco.Field("newsIntro", recursive: true)
于 2017-07-05T10:09:08.237 回答
0

要从内容中获取字段,我使用了这个:

@{
    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")
}
于 2017-12-01T20:03:59.407 回答