C# Orchard-移动页面标题

C# Orchard-移动页面标题,c#,asp.net-mvc,orchardcms,C#,Asp.net Mvc,Orchardcms,我对Orchard是个新手,我仍在努力理解所有不同的术语,所以这里任何断章取义的用法都不是故意的。我正试图做一些类似的东西张贴,但没有一个公认的答案 在常规站点(非博客)中,图形组为我的客户机提供的布局有一个标题部分,然后在下面有两列。比如说: ============================================================ | Page Title | =====

我对Orchard是个新手,我仍在努力理解所有不同的术语,所以这里任何断章取义的用法都不是故意的。我正试图做一些类似的东西张贴,但没有一个公认的答案

在常规站点(非博客)中,图形组为我的客户机提供的布局有一个标题部分,然后在下面有两列。比如说:

============================================================
|  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>

@Model.PageTitle
格式正确,但标题显示为“ISHAPEPROXYD0FC462A536A4DA88FD49545639B4698”,我猜这是某种类型的默认ToString()实现。如果将@Model.PageTitle包装为区域格式,即@zone(Model.PageTitle),则不会再次显示任何内容。我尝试过的其他属性有:@Model.Title和@Model.TitlePart.Title

我也尝试过使用placement.info文件,但它似乎希望PageTitle区域中的内容显示任何与我需要的内容不匹配的内容。我通过输入以下内容确认了这一点:

<Place Parts_Title="Content:after" />

这一行(使用before或after)使标题显示出来,只是不在正确的位置。当我使用下面的内容时,不会显示任何内容(使用before、after、no value、1等):



因此,总而言之,我如何让内容的标题显示在没有其他用户发起的内容显示的特定区域?

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

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

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

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