在模板中呈现网格时遇到问题
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 将网格作为类型化模型。
希望对您有所帮助。
我正在通过自定义编辑器使用网格数据类型,但在模板上呈现数据时遇到问题。
我认为自定义编辑器没有引起任何问题,因为它似乎可以正常工作并存储数据。
我感觉这可能是因为我设置页面的方式:
基本上我有一个父页面,下面有嵌套的 '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 将网格作为类型化模型。
希望对您有所帮助。