我刚开始研究ASP.NET MVC,我正在使用最新的beta(即4)。我正在采用正确的CRUD方案。我的主表(Task)看起来像这样 -
TaskID(int) EmployeeID(int) ProjectID(int) DeptID(int) 评论(varchar) 日期(日期时间) 小时(浮动)
TaskID是主键。其他三个ID都是引用表中的外键。
在各种教程之后,我使用Entity Framework创建了一个对象模型(.edmx)。然后,我使用“Add ... Controller”自动生成控制器,并选择“带读/写的控制器...”模板。
一切运作良好。但是,显然我希望三个外键列显示来自引用表的查找值,而不是ID。我真的不确定实现这一目标的“最佳实践”方法是什么。我有几种选择 -
也许还有其他方法。我想听听有关这种情况下“最佳实践”的经验丰富的MVC编程。
答案 0 :(得分:2)
更喜欢使用具有类似
的属性的TaskViewModel类public class TaskViewModel
{
public Task Task { get; set; }
public Dictionary<int, string> ProjectList { get; set; }
//rest of the Lookup Properties like DeptList, EmpList
}
public class Task
{
public int TaskId { get; set; }
public int projectId { get; set; }
//Rest of the properties
}
并且会使用
@model TaskViewModel
@Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%>