razor foreach使用ICollection

时间:2018-02-28 18:13:41

标签: c# asp.net-mvc razor

我正在使用razor来显示作者列表,因为你可以看到uno“MyClass”可以有很多作者。

   public class MyClass
{   
    [Key]
    public int MyClassId{ get; set; }
    //more properties
    /*****One measure has many authors*****/
    public virtual ICollection<Author> Authors { get; set; }

}
public class Author
{
    [Key]
    public int AuthorId { get; set; }

    public virtual Measure Measure { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string Email { get; set; }
}

我想在foreach循环中显示FirstName和LastName

  @foreach (var item in Model.Authors)
                {
                   @item.FirstName+" " + @item.LastName
                 }

但似乎我没有使用正确的sintax,如何显示名字和姓氏?

由于

2 个答案:

答案 0 :(得分:2)

确保完成以下步骤:

1)将模型传递给视图(显然包含数据)

var myModel = //some object of your MyClass;
return View(myModel);

2)将@model MyClass添加到视图顶部以接收模型

3)循环应如下所示:

@foreach (var item in Model.Authors.ToList())
{
   <p>
      @Html.Raw(item.FirstName + " " + item.LastName)
   </p>
}

编辑:.ToList()可能是必要的,因为作者属于ICollection

类型

答案 1 :(得分:0)

  

@ item.FirstName +“”+ @ item.LastName

在运行时,应抛出错误,语法正确:

选项1:

@foreach (var item in Model.Authors)
{
  @item.FirstName @item.LastName
}

选项2:

@foreach (var item in Model.Authors)
{
   string contactenated = item.FirstName + " " + item.LastName;
   @contactenated
}