razor foreach使用ICollection

问题描述 投票:1回答:2

我正在使用剃刀来显示作者列表,因为你可以看到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,如何显示名字和姓氏?

谢谢

c# asp.net-mvc razor
2个回答
2
投票

确保完成以下步骤:

1)将模型传递给视图(显然有WITH数据)

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

2)在视图顶部添加@model MyClassto以接收模型

3)循环应如下所示:

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

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


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
}
© www.soinside.com 2019 - 2024. All rights reserved.