-1

エンティティに新しいテーブルを追加し、関連付けを作成しました。私の新しいコードは以下の通りです。

以前に追加されたすべてのテーブルを見ることができるように、このテーブルは icollection として取得され、私のかみそりビューでは次のことを行うことができなくなりました。このビューに結果を表示するにはどうすればよいですか?

ありがとう

@Html.DisplayFor(modelItem => item.NetInfo.Username) が機能しなくなった Razor

エラー

 'System.Collections.Generic.ICollection<ITAPP.Models.tblNetworkInfo>' does not contain a definition for 'Username' and no extension method 'Username' accepting a first argument of type 'System.Collections.Generic.ICollection<ITAPP.Models.tblNetworkInfo>' could be found (are you missing a using directive or an assembly reference?)

クラス public 部分クラス tblEquipment { public tblEquipment() { this.NetInfo = new HashSet(); }

    public int ID { get; set; }
    public Nullable<int> UserID { get; set; }
    public Nullable<int> PreviousUserID { get; set; }
    public Nullable<int> ChangeID { get; set; }
    public Nullable<int> RequestedBy { get; set; }
    public string MachineName { get; set; }
    public bool Stock { get; set; }
    public string Vendor { get; set; }
    public string Model { get; set; }
    public string Supplier { get; set; }


    public virtual tblUser User { get; set; }
    public virtual tblChangeLog ChangeLog { get; set; }
    public virtual tblAssetType AssetType { get; set; }
    public virtual ICollection<tblNetworkInfo> NetInfo { get; set; }
4

1 に答える 1

1

NetInfo はコレクションなので、ループする必要があります。

これは 1 つのオプションです。

@foreach(var netInfo in Model.NetInfo)
{
    @Html.DisplayFor(m => netInfo.Username)
}

別のオプションは次のとおりです。

@Html.DisplayFor(m => m.NetInfo)

次に、tblNetworkInfo モデルの表示テンプレートを作成すると、必要なものを表示できます。

tblNetworkInfo.cshtml
----
@model tblNetworkInfo

@Html.DisplayFor(m => m.Username)

DisplayFor は、コレクションで動作し、コレクション内の各アイテムの表示テンプレートを出力するのに十分スマートです。

于 2013-07-30T12:45:36.987 に答える