循环遍历属性并访问其自身的属性
Looping Through Properties and accessing its own properties
我是 C# 和 Umbraco 的新手。想不通这个简单的事情,也找不到解决方案
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
}
List<string> test = new List<string>();
var item = CurrentPage.Children.FirstOrDefault();
var count = 0;
foreach (var prop in item.Properties) {
count++;
test.Add(prop.PropertyTypeAlias);
}
<html>
...
</html>
如果我计算属性,它会给出正确数量的属性,但我无法访问它自己的属性,例如 "Value"、"PropertyTypeAlias" 等。它抛出异常:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' does not contain a definition for 'PropertyTypeAlias'
提前致谢。
如果您想访问文档类型的属性,这样做会更好也更容易:
@inherits UmbracoTemplatePage
@{
}
<h1>@Model.Content.Name</h1>
@foreach (var item in Model.Content.Children)
{
<h2>@(item.GetPropertyValue<IHtmlString>("bodyText"))</h2>
}
CurrentPage 是一个动态对象,而 Model.Content 获取 "current page",但作为强类型 IPublishedContent,这意味着,如果您使用 Visual Studio,您将获得智能感知并且可以看看你可以使用哪些方法。
在 H1 标签中,我简单地提取了当前内容节点的名称,在 foreach 中,我遍历当前内容节点的子节点并显示它们的 属性 别名 "bodyText" 和数据类型 "Rich text".
编辑:
@inherits UmbracoTemplatePage
@{
var child = Model.Content.Children.FirstOrDefault();
var properties = new List<string>();
foreach (var item in child.Properties)
{
properties.Add(item.PropertyTypeAlias);
}
}
@foreach (var item in properties)
{
<h1>@item</h1>
}
我是 C# 和 Umbraco 的新手。想不通这个简单的事情,也找不到解决方案
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
}
List<string> test = new List<string>();
var item = CurrentPage.Children.FirstOrDefault();
var count = 0;
foreach (var prop in item.Properties) {
count++;
test.Add(prop.PropertyTypeAlias);
}
<html>
...
</html>
如果我计算属性,它会给出正确数量的属性,但我无法访问它自己的属性,例如 "Value"、"PropertyTypeAlias" 等。它抛出异常:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' does not contain a definition for 'PropertyTypeAlias'
提前致谢。
如果您想访问文档类型的属性,这样做会更好也更容易:
@inherits UmbracoTemplatePage
@{
}
<h1>@Model.Content.Name</h1>
@foreach (var item in Model.Content.Children)
{
<h2>@(item.GetPropertyValue<IHtmlString>("bodyText"))</h2>
}
CurrentPage 是一个动态对象,而 Model.Content 获取 "current page",但作为强类型 IPublishedContent,这意味着,如果您使用 Visual Studio,您将获得智能感知并且可以看看你可以使用哪些方法。
在 H1 标签中,我简单地提取了当前内容节点的名称,在 foreach 中,我遍历当前内容节点的子节点并显示它们的 属性 别名 "bodyText" 和数据类型 "Rich text".
编辑:
@inherits UmbracoTemplatePage
@{
var child = Model.Content.Children.FirstOrDefault();
var properties = new List<string>();
foreach (var item in child.Properties)
{
properties.Add(item.PropertyTypeAlias);
}
}
@foreach (var item in properties)
{
<h1>@item</h1>
}