0

C#/ASP.NET 的全新...

我有 2 个表:Administrators 和 AdministratorsRights。在 Administrators 表中,每个管理员都有一个 AdministratorsRightsID。这是我的管理员类(模型):

public partial class administrator
{
    [Key]
    public int AdministratorID { get; set; }

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

    [Required]
    public string UserName { get; set; }

    [Required]
    public string LastName { get; set; }

    [Required]
    public string FirstName { get; set; }

    [Required]
    public string StandardID { get; set; }

    public virtual administratorsright RightsLevel { get; set; }

}

这是我的控制器:

public ActionResult Index()
{
    return View(db.administrators.ToList());
}

这是我的观点(剃刀):

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.RightsLevel)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.LastName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FirstName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StandardID)
        </td>
        <td>
            @Html.ActionLink("Edit", "edit", new { id=item.AdministratorID }) |
            @Html.ActionLink("Details", "details", new { id=item.AdministratorID }) |
            @Html.ActionLink("Delete", "delete", new { id=item.AdministratorID })
        </td>
    </tr>
}

除了视图中的 item.RightsLevel 之外,所有内容都会显示出来。我试图让它显示名称而不是 ID(系统管理员,而不是“1”)。我并不惊讶这不起作用,因为我没有告诉它查看哪一列,但问题是,我不知道在哪里做。我猜我的模型不正确,因为我怀疑所有这些逻辑都应该发生在那里。

4

1 回答 1

2

这将取决于您的 AdministratorRights 表以及您拥有的字段。好消息是您可以在 DisplayFor 帮助器中更进一步,让它拉出正确的字段:

@Html.DisplayFor(modelItem => item.RightsLevel.RightsLevelName)

RightsLevelName您要显示的字段的实际名称在哪里。

于 2013-02-05T17:00:44.870 回答