果园 - 移动页面标题

时间:2013-01-10 23:34:59

标签: c# asp.net-mvc orchardcms

非常对Orchard来说是新的,我仍然试图绕过所有不同的术语,所以在这里使用的任何东西都不是故意的。我正在尝试做类似于发布here on 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,i.ie:

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

因此,总结一下,如何让内容的标题显示在没有其他用户启动的内容显示的特定区域?

1 个答案:

答案 0 :(得分:5)

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

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

注意区域名称前面的正斜杠。否则,展示位置默认为部件在本地内容区域内排列。