在模板中呈现网格时遇到问题

Having trouble rendering grid in a template

我正在通过自定义编辑器使用网格数据类型,但在模板上呈现数据时遇到问题。

我认为自定义编辑器没有引起任何问题,因为它似乎可以正常工作并存储数据。

我感觉这可能是因为我设置页面的方式:

基本上我有一个父页面,下面有嵌套的 'content region' 文档类型。这些 'content regions' 有一个使用网格数据类型的 属性。

在我的页面模板上,我尝试遍历所有嵌套内容区域,并为每个区域呈现网格数据。

所以在我的页面模板上我有这个:

<body>
....
@Html.Partial("About/ContentRegions")
....
</body>

然后在我的部分中我有以下内容:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage

@foreach (var contentRegion in Model.Content.Children.Where(cr => cr.IsVisible()))
{
    <div class="page-content-wrap">
        <div class="text-content" id="@(contentRegion.Name.ToLower().Replace(" ", ""))">
            <!-- Main Heading -->
            <h1>@(contentRegion.GetPropertyValue<string>("mainHeading"))</h1>

            <!-- Sub Heading -->
            <h3>@(contentRegion.GetPropertyValue<string>("introduction"))</h3>
            <div class="underline"></div>

            @Html.GetGridHtml(contentRegion, "regionBodyText");

        </div>
        <div class="text-separator">
            <!-- Separator -->
            <hr>
            <!-- Separator -->
        </div>
    </div>
}

希望到目前为止这一切都有意义,您可以看到我只是在尝试为我的每个嵌套内容区域呈现网格数据。但是,当我尝试查看该页面时,我收到以下错误:

当我编辑 'Bootstrap3.cshtml' 视图并简单地吐出模型时,它似乎显示 json 字符串以及网格编辑器的所有内容,即:

所以据我所知,json 似乎没有被正确反序列化以便 bootstrap3 视图处理数据。它只是将它视为一个字符串,这就是它抛出错误的原因。

我不确切知道我在这里做错了什么,但我觉得这与我设置 'content region' 嵌套子项有关。有人能给我指出正确的方向吗?

谢谢!

您使用的是自己的网格模板吗? umbraco 人员使用动态实现模板,这就是您收到此错误的原因。模板外的 header 应如下所示:

@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates
@using Newtonsoft.Json.Linq

您可以使用 GridData 将网格作为类型化模型。

希望对您有所帮助。