私はASP.NET MVCを使用しています。私は親を持つ:с#親コレクションの項目から子プロパティを取得
public class ReportFilterBuilderStruct
{
public string PropName { get; set; }
public string ClassName { get; set; }
public string SubListName { get; set; }
//public virtual string SecondaryPropName { get; set; }
public ReportFilterBuilderStruct(string inpPropName, string inpClassName, string inpSubListName)
{
PropName = inpPropName;
ClassName = inpClassName;
SubListName = inpSubListName;
}
}
と子:
public class DateReportFilterBuilderStruct : ReportFilterBuilderStruct
{
public string SecondaryPropName { get; set; }
public DateReportFilterBuilderStruct(string inpPropName, string inpSecondaryPropName, string inpClassName, string inpSubListName) : base(inpPropName, inpClassName, inpSubListName)
{
SecondaryPropName = inpSecondaryPropName;
}
}
}
私のモデルクラスのプロパティに関するいくつかのデータを格納するために私の見解で使用されます。 editorListProp
は、ReportFilterBuilderStruct
とDateReportFilterBuilderStruct
の両方を格納するため、親クラスオブジェクトのList
です。
var editorListProp = new List<NTStock.Models.ReportFilterBuilderStruct>();
今、私はそれらにアクセスしたい:
if (subItem.GetType() == typeof(NTStock.Models.ReportFilterBuilderStruct))
{
<div class="row align-items-center">
@Html.DisplayName(subItem.PropName)
</div>
<div class="row align-items-center mb-2">
@Html.Editor(subItem.PropName, "", new { htmlAttributes = new { @class = subItem.ClassName } })
</div>
}
else
{
<div class="row align-items-center">
@Html.DisplayName(subItem.PropName)
</div>
<div class="row align-items-center mb-2">
<div class="col-6">
From:
@Html.Editor(subItem.PropName, "", new { htmlAttributes = new { @class = subItem.ClassName } })
</div>
<div class="col-6">
Till:
@Html.Editor(subItem.SecondaryPropName, "", new { htmlAttributes = new { @class = subItem.ClassName } })
</div>
</div>
}
だから、ポイントは、私は現在のsubItem
がdefinetlyタイプDateReportFilterBuilderStruct
のあることを確かめたにも関わらず、私は私のSecondaryPropName
にアクセス傾けること、です。
'is'でも'サブアイテム場合 'true'をを返しますので、答えの2番目の部分は、残念ながら事実ではありません'は、' ReportFilterBuilderStruct'から継承するので、 'DateReportFilterBuilderStruct'型です。 –