在 piranha cms 中显示 post 内容
Display post content in piranha cms
我正在尝试显示页面的内容,因为使用过的内容已保存在管理器部分。
在我看来,我有以下代码:
@foreach (var block in Model.Blocks)
{
if (block is HtmlBlock htmlBlock)
{
<partial name="../Cms/DisplayTemplates/HtmlBlock.cshtml" for="@htmlBlock" />
}
if (block is HtmlColumnBlock columnBlock)
{
<partial name="../Cms/DisplayTemplates/HtmlColumnBlock.cshtml" for="@columnBlock" />
}
if (block is ImageBlock imageBlock)
{
<partial name="../Cms/DisplayTemplates/ImageBlock.cshtml" for="@imageBlock" />
}
if (block is QuoteBlock quoteBlock)
{
<partial name="../Cms/DisplayTemplates/ImageBlock.cshtml" for="@quoteBlock" />
}
if (block is TextBlock textBlock)
{
<partial name="../Cms/DisplayTemplates/TextBlock.cshtml" for="@textBlock" />
}
}
我很确定有更简单的方法可以做到这一点,但我找不到其他任何方法。
所以,如果我使用这种方法,当我在管理器中创建新元素时,我将不得不继续扩展这个 foreach 吗?感觉有点不对。
如果我使用 @Html.DisplayFor(m => m.Blocks)
它只显示名称空间名称。有什么想法吗?
找到解决方案:
为了使用@Html.DisplayFor(m => m.Blocks),您必须在共享视图文件夹中或作为您使用@的文件夹中的子文件夹中使用的块的显示模板Html.DisplayFor(m => m.Blocks).
例如我们有以下文件夹:
Views
Articles
Index.cshtml
Shared
SomeOtherFolder
在 Articles 文件夹内的 Index.cshtml 文件中使用 @Html.DisplayFor(m => m.Blocks) 的可能解决方案是:
在 Articles of Shared 文件夹中有 DisplayTemplates(带有块模板)文件夹。
希望这对您有所帮助
我正在尝试显示页面的内容,因为使用过的内容已保存在管理器部分。
在我看来,我有以下代码:
@foreach (var block in Model.Blocks)
{
if (block is HtmlBlock htmlBlock)
{
<partial name="../Cms/DisplayTemplates/HtmlBlock.cshtml" for="@htmlBlock" />
}
if (block is HtmlColumnBlock columnBlock)
{
<partial name="../Cms/DisplayTemplates/HtmlColumnBlock.cshtml" for="@columnBlock" />
}
if (block is ImageBlock imageBlock)
{
<partial name="../Cms/DisplayTemplates/ImageBlock.cshtml" for="@imageBlock" />
}
if (block is QuoteBlock quoteBlock)
{
<partial name="../Cms/DisplayTemplates/ImageBlock.cshtml" for="@quoteBlock" />
}
if (block is TextBlock textBlock)
{
<partial name="../Cms/DisplayTemplates/TextBlock.cshtml" for="@textBlock" />
}
}
我很确定有更简单的方法可以做到这一点,但我找不到其他任何方法。
所以,如果我使用这种方法,当我在管理器中创建新元素时,我将不得不继续扩展这个 foreach 吗?感觉有点不对。
如果我使用 @Html.DisplayFor(m => m.Blocks)
它只显示名称空间名称。有什么想法吗?
找到解决方案: 为了使用@Html.DisplayFor(m => m.Blocks),您必须在共享视图文件夹中或作为您使用@的文件夹中的子文件夹中使用的块的显示模板Html.DisplayFor(m => m.Blocks).
例如我们有以下文件夹:
Views
Articles
Index.cshtml
Shared
SomeOtherFolder
在 Articles 文件夹内的 Index.cshtml 文件中使用 @Html.DisplayFor(m => m.Blocks) 的可能解决方案是:
在 Articles of Shared 文件夹中有 DisplayTemplates(带有块模板)文件夹。
希望这对您有所帮助