代码之家  ›  专栏  ›  技术社区  ›  Metzer

.net core 2.0 MVC-视图-如何访问其他模型属性?

  •  -1
  • Metzer  · 技术社区  · 6 年前

    我正在创建一个简单的MVC应用程序。目前我有两个模型,Member和MembershipType。

    enter image description here

    从我的截图中可以看到,我的会员模型索引视图显示了(健身房的)所有会员。MembershipTypeId是链接到MembershipType表/模型的外键。

    在我的MembershipType模型中,我有另一个属性,它存储这些数值的用户友好字符串。我想在我的成员视图中显示它,而不是数字值。

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.FirstName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.LastName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DateOfBirth)
            </td>
            <td>
                **@Html.DisplayFor(modelItem => item.MembershipTypeId)**
            </td>
            <td>
                <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
                <a asp-action="Details" asp-route-id="@item.Id">Details</a> |
                <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
            </td>
        </tr>
    

    }

    我可以在我的成员视图中执行case语句,并对人性化的字符串值进行硬编码,但必须有另一种方法。

    抱歉,如果这很简单,我是初学者。

    提前感谢

    N、 B我选择了我要修改的代码中的行,

    1 回复  |  直到 6 年前
        1
  •  0
  •   Georg Patscheider    6 年前

    可以将MembershipType建模为成员中的导航属性 实体这样,它可以在需要时延迟加载。

    public class Member {
    
       public string FirstName { get; set; }
       public string LastName { get; set; }
    
       // foreign key for MembershipType 
       [ForeignKey("MembershipType")]
       public long MembershipTypeId { get; set; }
    
       public virtual MembershipType MembershipType { get; set; }
    }
    

    然后您可以访问MembershipType的属性,如下所示:

    @model IEnumerable<Member>
    
    @foreach (var item in Model) {
        @Html.DisplayFor(modelItem => item.MembershipType.Name)
    }