考虑我有一个像这样的模型:
public class Branch
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
}
和示例数据:
Id -----名称----- ParentId
01 -----父级----- 00
02 -----儿童------- 01
在Index.html视图中,我在此表中显示项目列表:
那如果我想显示父母的名字而不是父母的名字怎么办?我可以将“父母”模型与孩子的模型分开,但我希望它们在同一张表中。
答案 0 :(得分:1)
您可以考虑使用ViewModel来处理这种情况。
public class BranchVM : Branch
{
// because it extends Branch it has Id, Name, and ParentId
public string ParentName {get;set;}
}
在您的业务逻辑中获取字段,然后将此视图模型传递到接受BranchVM作为其模型和视图的视图。
答案 1 :(得分:0)
尝试了多种方法后,我决定使用联接,如下所示:
作为我的模特:
sum (funcion5 (x:xs))
作为我的控制者:
public class Branch
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
[NotMapped]
public string ParentName { get; set; }
}
并作为我的视图:
public ActionResult Index()
{
var branches = db.Branches;
var query = from child in branches
join parent in branches on child.ParentId equals parent.Id into parentJoin
select new
{
Id = child.Id,
ParentId = child.ParentId,
Name = child.Name,
ParentName = parentJoin.FirstOrDefault().Name
};
var result = query.ToList().Select(e => new Branch
{
Id = e.Id,
ParentId = e.ParentId,
Name = e.Name,
ParentName = e.ParentName
}).ToList();
return View(result);
}
}