2012-04-10 119 views
0

我刚开始研究ASP.NET MVC,并且正在使用最新的测试版(即4)。我追求正确的做法是什么是一个相当的CRUD场景。我的主表(任务)看起来是这样的 -ASP.NET MVC - 更新外键

的TaskID(INT) 雇员(INT) 专案编号(INT) DEPTID(INT) 评论(VARCHAR) 日期(日期时间) 小时(浮动)

TaskID是主键。其他三个ID都是引用表中的外键。

遵循各种教程,我使用实体框架创建了一个对象模型(.edmx)。然后,我使用“添加...控制器”自动生成控制器,然后选择“具有读/写...的控制器”模板。

一切运作良好。不过,显然我希望这三个外键列显示来自引用表的查找值,而不是ID。我真的不确定实现这个目标的“最佳实践”方法是什么。有几个选项出现,我 -

  1. 创建SQL Server中的视图
  2. 创建EF视图(不知道如何做到这一点)
  3. 查一查在使用LINQ飞的参考值控制器

也许还有其他方法。我希望听到有经验的MVC编写关于这种情况下的“最佳实践”。

回答

2

宁愿将有属性这样的事情

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 
} 

,并会使用TaskViewModel类

@model TaskViewModel 
@Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%> 
+0

在哪里,你会填充视图模型?在控制器中? – 2012-04-10 20:24:13