2

我对 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" />

所以,总而言之,我如何让内容的标题显示在不会显示其他用户启动内容的特定区域?

4

1 回答 1

5

我相信您正在寻找的是将标题放置到顶级布局区域中。其语法是(假设您的布局中有一个 PageTitle 区域,但这可以是您的布局视图中的任何区域)。我认为这是 Orchard 1.5 中添加的一个功能:

<Place Parts_Title="/PageTitle:1"/>

请注意区域名称前的正斜杠。否则,放置默认设置是在本地内容区域内排列部件。

于 2013-01-11T00:06:06.140 回答