0

我刚刚开始研究 ASP.NET MVC,并且我正在使用最新的测试版(即 4)。我正在寻找一个相当 CRUD 场景的正确方法。我的主表(任务)看起来像这样 -

TaskID (int) EmployeeID (int) ProjectID (int) DeptID (int) Comment (varchar) Date (datetime) Hours (float)

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

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

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

  1. 在 SQL Server 中创建视图
  2. 在 EF 中创建一个视图(不知道这是如何完成的)
  3. 在控制器中使用 LINQ 即时查找参考值

也许还有其他方法。我想听听经验丰富的 MVC progs 在这种情况下的“最佳实践”。

4

1 回答 1

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))%>  
于 2012-04-10T08:13:39.033 回答