0

C#/ASP.NET の初心者...

Administrators と AdministratorsRights の 2 つのテーブルがあります。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 に答える