我有一个包含超级对象的类。创建此类时,它将包含superobject的一个子对象。但是,因为子对象的属性不在超级对象中,所以我无法在Razor中访问这些属性。有人能告诉我如何达到子对象的属性吗?我不能把子对象的属性放在superobject中,因为我要将类转换为json,并且我不能在json中看到所有属性。
类别:
public class FoundPattern
{
public Pattern Pattern = new Pattern();
}
超对象:
public class Pattern : OntologicalModel
{
}
子对象:
public class KpiPattern : Pattern
{
public List<KPI> KPIs = new List<KPI>();
}
public class ProcessPattern : Pattern
{
public List<Process> Processes = new List<Process>();
}
Razor页面:
@model IEnumerable<FoundPattern>
@foreach (var x in item.SUBOBJECTNAME.SUBOBJECTATTRIBUTE)
{
// do something
}
而不是SUBOBJECTNAME
和SUBOBJECTATTRIBUTE
我分别需要subobject和subobject属性。
答案 0 :(得分:0)
应该像
@foreach (var x in Model)
{
if(x.Pattern is ProcessPattern) {
foreach (var y in ((KpiPattern)x.Pattern).Processes)
{
//enter code here
}
}
if(x.Pattern is KpiPattern) {
foreach (var y in ((KpiPattern)x.Pattern).KPIs)
{
//enter code here
}
}
}
如果您没有智能感知或视图显示语法错误,则可能的问题是您没有在web.config
Views
中包含您的课程的命名空间}文件夹。
在编辑智能感知的web.config
后,请务必打开并关闭视图,以便开始正常工作。