gpt4 book ai didi

c# - 添加内容类型的新实例时如何显示内容部分的字段?

转载 作者:行者123 更新时间:2023-11-30 17:25:49 26 4
gpt4 key购买 nike

我正在尝试创建一个自定义模块,其中包含一个包含内容部分 (ProjectPart) 的内容类型 (Project)。项目将由管理员创建。目标是在特定页面上显示这些创建的项目。

当我尝试在管理菜单上实例化一个新项目时,我只看到一个字段(描述)。其他字段未显示。

我关注了the steps (starting from PersonPart.cs) in "Lombiq.TrainingDemo" project ,并设法创建了一个自定义模块,其中包括一个内容类型 (Project)、一个内容部分 (ProjectPart)。项目中的评论声称我们可以创建一个包含所有字段的瞬间。但我的情况并非如此。

这是我的代码:

https://gist.github.com/vogucore/efb0096e349591c235103e4f3f9e60d1

Here you can see what I exactly mean.

我希望看到并编辑它的所有字段,但只显示“描述”字段。

能否请您告诉我是否遗漏了什么,或者项目中的解释不正确?

提前致谢。和平! (;

最佳答案

您似乎混淆了内容部分的属性和内容部分的字段,这在 Orchard 中是两个不同的概念。

部件是可以具有常规 C# 属性的常规 C# 对象。使用这些属性是开发人员在 Orchard 中扩展 CMS 和构建自定义部件的有效和主流方式。

字段是较小的内容单元(通常是单个字符串、数字或图像等),可以通过代码或管理员的内容类型动态添加到部分定义编辑器。它们的优点是站点管理员可以在运行时添加、删除和修改它们。

将它们混淆是可以理解的:它们都是可以附加到部件的名称/值。就实际使用而言,在两者之间进行选择的一个好方法是提出以下问题:

这是与我正在构建的部件概念紧密相关的核心属性,还是管理员认为有意义的东西?

例如,如果我构建一个商业产品部件,那么 SKU 和价格将是部件属性是有意义的。现在产品照片不同,不是所有的产品都一定有照片,有些可能有好几张,可能是视频,谁知道呢?使产品成为产品的并不是内在属性。因此,将其设为一个字段(具体来说是一个媒体选择器字段)。

回到您的特定示例,您不应该在迁移中添加该字段:它基本上是在创建一些看起来像是您的 Description 属性,但实际上是 Description 字段,以及您的同名属性。

您的零件属性没有出现在您的编辑器中的原因是您还没有完成您的零件。你还需要 build a driver , 和 views为此(该领域不需要它,因为它们已经由 build 该领域的人 build )。

作为旁注,我认为优秀的 Lombiq 人员通过为 Biography 属性提供 TextField 类型做出了糟糕的选择。这非常令人困惑,在我看来,它确实应该是一个字符串,您的 Description 属性也应该是一个字符串。

关于c# - 添加内容类型的新实例时如何显示内容部分的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57628892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com