我正在使用网格数据类型和自定义编辑器,而我在模板上渲染数据时遇到了问题。
我不相信自定义编辑器会导致任何问题,因为它似乎正常工作并存储数据。
我有一种感觉,这可能是因为我设置页面的方式:
基本上我有一个父页面,有嵌套的内容区域'它下面的文档类型。这些内容区域'有一个使用网格数据类型的属性。
在我的页面模板上,我试图遍历所有嵌套的内容区域,并为每个区域渲染网格数据。
所以在我的页面模板上我有这个:
<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>
}
希望到目前为止这一切都有意义,你可以看到我只是尝试为每个嵌套的内容区域渲染网格数据。但是,当我尝试查看该页面时,收到以下错误:
当我编辑&#39; Bootstrap3.cshtml&#39;查看并简单地吐出模型,它似乎显示了包含网格编辑器所有内容的json字符串,即:
因此,从我可以收集到的内容来看,json似乎没有被正确地反序列化以使bootstrap3视图处理数据。它只是将它视为一个字符串,这就是它抛出错误的原因。
我并不确切地知道我在这里做错了什么,但我觉得这与我有这个内容区域的关系是什么?&#39;嵌套的孩子设置。有人能指出我在正确的方向吗?
谢谢!
答案 0 :(得分:2)
您使用自己的网格模板吗? umbraco家伙用动态实现了模板,这就是你得到这个错误的原因。模板的标题应如下所示:
@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates
@using Newtonsoft.Json.Linq
您可以使用GridData将网格作为类型模型。
希望这有帮助。