2012-04-10 134 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