+ Content Item
++ Id: + <%=Model.Item.Id %>
++ ContentType: + <%=Model.Item.ContentType%>
++ Content Item Parts
+-
+ <%foreach (var partType in Model.PartTypes.OrderBy(x => x.Name)) {%>
+
-
+ <%if (partType.IsGenericType) {%><%=Html.Encode(partType.Name +" "+partType.GetGenericArguments().First().Name)%>
+ <%=Html.Encode(" (" + partType.GetGenericArguments().First().Namespace + ")")%><%}
+ else {%><%=Html.Encode(partType.Name)%>
+ <%=Html.Encode( " (" + partType.Namespace + ")")%><%
+ }%>
+
-
+ <%foreach (var prop in partType.GetProperties().Where(x => x.DeclaringType == partType)) {
+ var value = prop.GetValue(Model.Locate(partType), null);%>
+
-
+ <%=Html.Encode(prop.Name) %>:
+ <%=Html.Encode(value) %>
+
-
+ <%if (value == null || prop.PropertyType.IsPrimitive || prop.PropertyType == typeof(string)) { }
+ else if (typeof(IEnumerable).IsAssignableFrom(prop.PropertyType)) {
+ foreach (var item in value as IEnumerable) {
+ %>
+
- <%=Html.Encode(item.GetType().Name) %>:<%=Html.Encode(item) %> + <% + } + + } + else {%> + <%foreach (var prop2 in value.GetType().GetProperties().Where(x => x.GetIndexParameters().Count() == 0)) {%> +
- + <%=Html.Encode(prop2.Name)%> + <%=Html.Encode(prop2.GetValue(value, null))%> + <%} %> + <%} %> +
+ <%} %>
+
+ <%}%>
+ -
+ <%=Html.Encode(prop.Name) %>:
+ <%=Html.Encode(value) %>
+
+ Editors
+-
+ <%foreach (var editor in Model.Editors) {%>
+
-
+ <%=Html.Encode(editor.Prefix) %>
+ <%=Html.Encode(editor.Model.GetType().Name) %>
+ (<%=Html.Encode(editor.Model.GetType().Namespace) %>)
+ + <%=Html.EditorFor(x=>editor.Model, editor.TemplateName, editor.Prefix) %> ++
+ <%
+ }%>
+