【发布时间】:2011-07-20 12:53:14
【问题描述】:
我开始研究非常好的 CMS Orchard,在阅读了基本文档之后,我遇到了一个小障碍。
我创建了一个新的 DataType,'SpecialOffer',它有一些数据部分和一些文本数据字段:
ProductName
PhotoURL
Price
Description
我已经制作了一个列表,制作了一个小部件,自定义了 position.info 文件和 Views\Fields\Common.Text.cshtml 文件以更改字段的位置和呈现方式(照片的 img,在价格前加上 € 和依此类推),但这并没有为我提供对生成的 html 的适当定制量。
我已经安装了开发者形状跟踪模块并创建了一个备用Content-SpecialOffer.cshtml 文件。
这让我有机会轻松自定义 HTML 围绕内容,但我不知道如何访问单个 DataItem 字段以按我想要的方式显示它们。
我的意思是通过显示整个SpecialOffer对象
@Display(Model.Content )
并且,探索模型,我还没有找到一种方法来写一些东西,比如说(伪代码)
<div>
the
<span class="name"> @Model.Contentitem.Fields["ProductName"]</span>
camera costs
@Model.Contentitem.Fields["Price"]
euros
</div>
我在 SO 上读过这篇文章 Custom View For RecentBlogPosts in Orchard
但它并没有解决我的问题,因为它使用了 blogpost 的标准属性。
另一个小问题:除了在项目果园的文档页面和b。 LeRoy 的http://weblogs.asp.net/bleroy/ 我在哪里可以学习果园?
谢谢!
编辑
我已经找到了一种方法:
@{
dynamic offer =Model.ContentItem.SpecialOffer;
}
<div>
the
<span class="name"> @offer.ProductName.Value</span>
camera costs
@offer.Price.Value
euros
</div>
这是正确的方法吗?
【问题讨论】:
-
嗯。闻起来很有趣,但我知道你在做什么,而且它确实有效!另一种方法是使用客户端脚本来实现,但这也很有趣。
-
您实际上是在使用字段,还是通过内容部分访问字段(即针对部分记录的字段)?字段(如 ImageField、TextField 等)确实用于“非重要”数据(B. Leroy 一周左右发布了这个,如果你愿意,我可以为你挖掘链接)。
-
mdm,我认为字段用于重要的类型特定数据:“字段是特定于类型的东西;例如,产品类型可能具有 SKU 和价格字段。但是,一部分,是一种可重复使用的组件,可以附加到一种或多种类型。” orchardproject.net/docs/Creating-custom-content-types.ashx 但我想阅读您提到的博文,谢谢。
标签: c# model content-management-system customization orchardcms