Asp.net mvc ASP.NET MVC列表/详细视图显示名称值

Asp.net mvc ASP.NET MVC列表/详细视图显示名称值,asp.net-mvc,razor,Asp.net Mvc,Razor,在我的列表和详细信息视图中,我需要显示值(name),而不是id(int)。问题是我只有一个收藏。因此,只显示输入的名称。Model.Entries.Staff仅包含一项,而不是所有可能的匹配项 // model public class Entry { [Display(Name = "Assigned To")] [Column(Name = "AssignedToId")] [Required(ErrorMessage = "

在我的列表和详细信息视图中,我需要显示值(name),而不是id(int)。问题是我只有一个收藏。因此,只显示输入的名称。Model.Entries.Staff仅包含一项,而不是所有可能的匹配项

// model
    public class Entry
    {
        [Display(Name = "Assigned To")]
        [Column(Name = "AssignedToId")]
        [Required(ErrorMessage = "You must select an individual.")]
        public int AssignedToId { get; set; }

        [Display(Name = "Entered By")]
        [Column(Name = "EnteredById")]
        [Required(ErrorMessage = "You must select an individual.")]
        public int EnteredById { get; set; }

        public virtual Staff Staff { get; set; }
    }

// view
    @foreach (var item in Model.Entries)
    {
            <td>
                @(item.AssignedToId == null ? "None" : item.Staff.Name))
            </td>
            <td>
                @(item.EnteredById == null ? "None" : item.Staff.Name)
            </td>
    }
//模型
公开课入学
{
[显示(Name=“分配给”)]
[列(Name=“AssignedToId”)]
[必需(ErrorMessage=“您必须选择个人。”)]
public int AssignedToId{get;set;}
[显示(Name=“输入人”)]
[列(Name=“EnteredById”)]
[必需(ErrorMessage=“您必须选择个人。”)]
public int EnteredById{get;set;}
公共虚拟职员{get;set;}
}
//看法
@foreach(Model.Entries中的var项)
{
@(item.AssignedToId==null?“无”:item.Staff.Name)
@(item.EnteredById==null?“无”:item.Staff.Name)
}

您是否考虑过使用ViewModel模式来解决此问题

我通常这样做的方式是创建一个ViewModel类,该类包含页面的模型和一个属性,该属性保存用于查找的列表值。以下是一个例子:

在我看来,我有(剃刀):

ModelObject是我的实际可编辑模型

在我的ViewModel中,我有:

public LeagueSeasonRoList LeagueList { get; set; }
public Team ModelObject { get; set; }
在我的模型中,我有一个leagueId属性,它将所有这些联系在一起

然后在控制器中,我使用ViewModel,而不是直接使用可编辑对象作为模型

你需要做一些调整,这样你所有的参考都是正确的,但我已经成功地使用了很多次这种模式

嗯,


\^/i l

我在EntryViewModel类中添加了
public IEnumerable Staff{get;set;}
,并在视图中添加了以下两行:
@(item.AssignedToId==null?“无”:Model.Staff.Where(m=>m.StaffId==item.AssignedToId).Single().Name)
@(item.EnteredById==null?“无”:Model.Staff.Where(m=>m.StaffId==item.EnteredById).Single().Name)
public LeagueSeasonRoList LeagueList { get; set; }
public Team ModelObject { get; set; }