Orchardcms 如何访问Orchard中的ContentItemfield文本字段

Orchardcms 如何访问Orchard中的ContentItemfield文本字段,orchardcms,Orchardcms,这听起来是一个(非常)愚蠢的问题,但我就是找不到一种方法来访问我刚刚添加到Orchard内容类型中的文本字段。我知道在将字段添加到内容部分时如何访问该字段,但在将其直接添加到内容类型本身时却不知道如何访问该字段 内容类型称为Product,它是可包含的,并显示在列表中。我添加了普通部分,外加两个自定义字段:一个名为“Image”的MediaPicker字段和一个名为“About”的HTML文本字段。我用于呈现包含它的列表的代码如下: @using Orchard.DisplayManagemen

这听起来是一个(非常)愚蠢的问题,但我就是找不到一种方法来访问我刚刚添加到Orchard内容类型中的文本字段。我知道在将字段添加到内容部分时如何访问该字段,但在将其直接添加到内容类型本身时却不知道如何访问该字段

内容类型称为Product,它是可包含的,并显示在列表中。我添加了普通部分,外加两个自定义字段:一个名为“Image”的MediaPicker字段和一个名为“About”的HTML文本字段。我用于呈现包含它的列表的代码如下:

@using Orchard.DisplayManagement.Shapes;
@{
    var list = Model.List;
    var items = list.Items;
    var count = items.Count;
    var listTag = Tag(list, "ul");
    listTag.AddCssClass("historia");
    var index = 0;
}

<div class="produtos">
    @foreach (var item in items)
    {
        var itemTag = Tag(item, "div");
        itemTag.AddCssClass("item-" + index);
        @itemTag.StartElement;
        <h3>@item.ContentItem.TitlePart.Title</h3>
        <img src="@Href(item.Image.Url)" 
            class="@item.Image.Class"
            alt="@item.Image.AlternateText" 
            width="@item.Image.Width" 
            height="@item.Image.Height" 
            style="@item.Image.Style" />
        <p>@item.About.Text</p>
        @itemTag.EndElement;
        ++index;
    }
</div>
@Display(Model.List)
@Display(Model.Pager)
@使用Orchard.DisplayManagement.Shapes;
@{
var list=Model.list;
变量项=列表项;
变量计数=项目数;
var listTag=标签(列表,“ul”);
listTag.AddCssClass(“historia”);
var指数=0;
}
@foreach(项目中的var项目)
{
var itemTag=标记(项目,“div”);
itemTag.AddCssClass(“项-”+索引);
@itemTag.StartElement;
@item.ContentItem.TitlePart.Title
@item.About.Text

@itemTag.EndElement; ++指数; } @显示(模型列表) @显示器(型号寻呼机)
问题是@item.Image不会删除图像字段,@item.About也不会生成“About”文本字段。我甚至不知道一个文本字段是否有一个.Text属性来访问它的值,毕竟它可以有HTML风格。。。我甚至不知道在源代码中可以找到什么地方来帮助我找到如何做到这一点

我尝试了一些不同的方法,如@item.ContentFields.About.Text或@item.ContentField.About.Text、@item.Fields[0]、@item.ContentItem.About.Text、@item.ContentItem.ContentFields.About.Text(最后两个抛出异常,告诉我ContentItem没有这些字段…)

我知道,如果我将字段添加到内容部分,并将此部分添加到内容类型,我可以这样做:@item.ContentItem.TheNameOfContentPart.Image.Url


我越来越沮丧,因为我不知道如何在果园里做最简单的事情。我需要这一时刻,让我能够知道在源代码中查找这些问题的答案。

不要尝试用你的运气替换值,它会浪费你的时间,最终你几乎没有真正的结果。建议使用形状跟踪来执行此操作。在互联网上搜索果园形状跟踪,您就可以开始了。:)

不要试图用运气来取代价值观,这会浪费你的时间,最终你几乎没有真正的结果。建议使用形状跟踪来执行此操作。在互联网上搜索果园形状跟踪,您就可以开始了。:)

字段始终位于零件下方。只是,如果您从管理员添加字段,那么将自动为您创建与类型同名的部件

您不能将字段添加到内容类型,而是始终将其添加到内容部分。只是如果那部分和类型有相同的名字,美好的魔法就会发生

字段始终位于零件下方。只是,如果您从管理员添加字段,那么将自动为您创建与类型同名的部件

您不能将字段添加到内容类型,而是始终将其添加到内容部分。只是如果那部分和类型有相同的名字,美好的魔法就会发生


我一直在使用形状跟踪,但在这种情况下没有帮助。我已经弄明白了,事实上我在Orchard的论坛上找到了Bertrand对一个类似问题的答案:“一个字段总是在一个部分下。只是如果你从管理员那里添加字段,一个与类型同名的部分会自动为你创建。”()所以,在我的情况下,我必须使用:@item.ContentItem.Product.Image.Url,例如…@BertrandLeRoy,它是“或多或少”解决的。。。我可以访问该字段,但由于它具有HTML“风味”,因此无法将其输出为HTML(最终文本包含标记,就像它被转义一样,并以纯文本显示)。我应该把它作为另一个问题发布。。。并在此处发布此问题的解决方案…Html.Raw是您的朋友,但在这种情况下,它应该是相对友好的。@BertrandLeRoy您不想在这里回答此问题,并在Orchard论坛上链接到您的原始答案吗?毕竟这是你的答案?这样我至少可以通过接受你的回答来“说”谢谢你…:-)->“一个字段总是在一个部分下。只是如果你从管理员处添加该字段,那么会自动为你创建一个与类型同名的部分。”(orchardprofile.codeplex.com/discussions/257951)好的,然后。。。现在就这么做。顺便说一下,你上面的链接没有指向正确的线程。我一直在使用形状跟踪,但在这种情况下没有帮助。我已经弄明白了,事实上我在Orchard的论坛上找到了Bertrand对一个类似问题的答案:“一个字段总是在一个部分下。只是如果你从管理员那里添加字段,一个与类型同名的部分会自动为你创建。”()所以,在我的情况下,我必须使用:@item.ContentItem.Product.Image.Url,例如…@BertrandLeRoy,它是“或多或少”解决的。。。我可以访问该字段,但由于它具有HTML“风味”,因此无法将其输出为HTML(最终文本包含标记,就像它被转义一样,并以纯文本显示)。我应该把它作为另一个问题发布。。。并在此处发布此问题的解决方案…Html.Raw是您的朋友,但在这种情况下,它应该是相对友好的。@BertrandLeRoy您不想在这里回答此问题,并在Orchard论坛上链接到您的原始答案吗?毕竟这是你的答案?这样我至少可以通过接受你的回答来“说”谢谢你…:-)->“一个字段总是在一个部件下面。只是如果您从管理员处添加该字段,则会自动创建一个与类型同名的部件。”