我的 EditorTemplates 文件夹中有一个自定义编辑器,用于IList<PersonRelations>
. 编辑器有这个模型:
@model IList<PersonRelation>
在我的实体中是这样的:
public IList<PersonRelation> Relations { get; set; }
在我看来,这就是我所说的:
<div class="editor-field">
@Html.EditorFor(model => model.Relations)
</div>
如果Relations
为空,它正在渲染模型。
但是..我想以这种方式声明我的财产
private IList<PersonRelation> _relations;
public IList<PersonRelation> Relations
{
get { return _relations ?? (_relations = new List<PersonRelation>()); }
set { _relations = value; }
}
避免空引用异常。
问题是当 List 不为 null 且没有元素时,编辑器根本不会显示。
在我的编辑器中,我迭代了元素,但我也在循环之外渲染了另一个控件,我看不到任何元素。
我错过了什么?