我对 Orchard非常陌生,并且仍在尝试围绕所有不同的术语进行思考,因此此处使用的任何断章取义的术语都不是故意的。我正在尝试做类似于在 SO 上发布的内容,但没有可接受的答案。
在常规站点(非博客)中,图形组为我的客户提供的布局有一个标题部分,然后在其下方有两列。所以,像这样:
============================================================
| Page Title |
============================================================
| Left Content | Right Content |
| | |
============================================================
标题区域的 HTML 是:
<div class="page_header">
<div class="padding">
<h2 id="page_title">This is the page's title</h2>
</div>
</div>
在该块下方是更多的 div,用于将页面的其余部分分成两列。我遇到的问题是试图让用户通过 Orchard 输入的页面标题显示在上述部分中。我尝试将其设为一个名为 PageTitle 的区域,但最接近它显示任何内容的是我为该占位符添加了一个空的 HTML 小部件,然后在标签中添加了 @Model.PageTitle,即:
<div class="page_header">
<div class="padding">
<h2 id="page_title">@Model.PageTitle</h2>
</div>
</div>
格式正确,但标题显示为“ISHAPEPROXYD0FC462A536A4DA88FD49545639B4698”,我猜这是某种类型的默认 ToString() 实现。如果我以区域格式包装@Model.PageTitle,即@Zone(Model.PageTitle),则不会再出现任何内容。我尝试过的其他属性是:@Model.Title 和@Model.TitlePart.Title。
我也尝试过使用placement.info 文件,但它似乎希望PageTitle 区域中的内容显示与我需要的内容不符的任何内容。我通过输入以下内容确认了这一点:
<Place Parts_Title="Content:after" />
该行(使用之前或之后)使标题显示出来,只是不在正确的位置。当我使用下面的内容时,什么都没有显示(使用之前、之后、无值、1 等):
<Place Parts_Title="PageTitle:before" />
所以,总而言之,我如何让内容的标题显示在不会显示其他用户启动内容的特定区域?