@using System.Web @using Microsoft.AspNetCore.Html @using Newtonsoft.Json.Linq @inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @if (Model is JObject && Model?.sections is not null) { var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;
@if (oneColumn) { foreach (var section in Model.sections) {
@foreach (var row in section.rows) { renderRow(row, true); }
} } else {
@foreach (var sec in Model.sections) {
@foreach (var row in sec.rows) { renderRow(row, false); }
}
}
} @functions{ private async Task renderRow(dynamic row, bool singleColumn) {
@if (singleColumn) { @:
}
@foreach (var area in row.areas) {
@foreach (var control in area.controls) { if (control?.editor?.view != null) { @await Html.PartialAsync("grid/editors/base", (object)control) } }
}
@if (singleColumn) { @:
}
} } @functions{ public static HtmlString RenderElementAttributes(dynamic contentItem) { var attrs = new List(); JObject cfg = contentItem.config; if (cfg != null) { foreach (JProperty property in cfg.Properties()) { var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); attrs.Add(property.Name + "=\"" + propertyValue + "\""); } } JObject style = contentItem.styles; if (style != null) { var cssVals = new List(); foreach (JProperty property in style.Properties()) { var propertyValue = property.Value.ToString(); if (string.IsNullOrWhiteSpace(propertyValue) == false) { cssVals.Add(property.Name + ":" + propertyValue + ";"); } } if (cssVals.Any()) attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\""); } return new HtmlString(string.Join(" ", attrs)); } }