繁体   English   中英

如何获取IEnumerable中项目的属性 <T> 当该IEnumerable在模型中时

[英]How to get properties of items in IEnumerable<T> when that IEnumerable is in a model

我有以下具有IEnumerable的模型,其中T是另一个对象/模型:

public class Employee
{

    public ApplicationUser PayrollAdmin { get; set; }

    [Required]
    public int EmployeeId { get; set; }

    [Required]
    [DisplayName("First Name")]
    public string FirstName { get; set; }

    [Required]
    [DisplayName("Last Name")]
    public string LastName { get; set; }

    public virtual ICollection<Dependant> Dependants { get; set; }

}

从属类本质上是这样的:

public class Dependant
{

    public int DependantId { get; set; }

    [Required]
    [DisplayName("First Name")]
    public string FirstName { get; set; }
    [Required]
    [DisplayName("Last Name")]
    public string LastName { get; set; }

    [ForeignKey("Employee_EmployeeId")]
    public virtual Employee Employee { get; set; }

    public int? Employee_EmployeeId { get; set; }
}

我无法从Employee模型访问Dependent属性。 Razor不公开那些属性。 我本质上想做类似@ Model.Employee.Dependant.FirstName的操作,但是无法深入研究这些属性。 这是不可能的吗?或者我需要做些什么才能到达那里?

Dependants属性是一个集合,因此您需要对其进行迭代以分别访问此集合的元素:

@foreach (var dependent in Model.Employee.Dependants)
{
    <div>@dependant.FirstName</div>
    <div>@dependant.LastName</div>
}

Dependants是一个集合。 您要么必须迭代以下内容:

@foreach (var item in Model.Employee.Dependants)
{
    <span>@item.FirstName @item.LastName</div>
}

或使用LINQ

@if(Model.Employee.Dependants.Any())
{
    Model.Employeee.Dependants.FirstOrDefault().FirstName
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM