我向我的实体添加了一个新表并创建了一个关联。我的新代码如下。
正如你可以看到所有以前添加的表只是进入get / set这个表作为icollection进入并且在我的剃刀视图中我不能再执行以下操作了。如何将结果输入此视图?
由于
Razor不再有效 @ Html.DisplayFor(modelItem => item.NetInfo.Username)
错误
'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?)
类 公共部分类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; }
答案 0 :(得分:1)
由于NetInfo是一个集合,你必须遍历它:
这是一个选择:
@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非常智能,可以处理集合并为集合中的每个项目输出显示模板。