从Razor HTML中的子对象获取值

时间:2018-02-21 10:55:08

标签: c# razor asp.net-core

我有一个包含超级对象的类。创建此类时,它将包含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     
}

而不是SUBOBJECTNAMESUBOBJECTATTRIBUTE我分别需要subobject和subobject属性。

1 个答案:

答案 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后,请务必打开并关闭视图,以便开始正常工作。