2012-10-09 88 views
0

我想弄清楚如何使用ViewModel查看視圖中的細節。從視圖模型查看細節

我有一個視圖模型設置,但似乎無法使用它在我的看法。

在我的控制器中,我有一個Details方法,我想用它來顯示ViewModel中的所有細節。

到目前爲止,我將用戶名作爲字符串傳遞,然後創建ViewModel的新實例,然後嘗試用數據填充ViewModel,但不知道如何執行此操作。我分配基礎上在未來的ID的用戶名 -

public ViewResult Details(string id) 
     { 

      var viewModel = new RegisterViewModel(); 
      viewModel.UserName = id; 
      return View(viewModel); 
     } 

,然後發送視圖模型回看法,但我如何得到其他相關數據到視圖模型?

+0

你能澄清你的問題嗎?你是什​​麼意思*獲取其他相關數據*?你的意思是從視野內? –

+0

我的意思是模型。視圖模型包含用戶和用戶詳細信息模型。當我點擊'detail; s'鏈接時,我想檢索該特定用戶的所有數據,但我不確定如何執行此操作。我的意思是與傳入的用戶名相關。謝謝 –

回答

0

你需要做的是查詢數據庫並將其傳遞迴你的觀點,即

public ViewResult Details(string id) 
{ 
    var entity = // pull record from DB by id 
    return View(new RegisterViewModel() 
    { 
     UserName = id, 
     AnotherProperty = entity.AnotherProperty 
     ... 
    }); 
} 

如果前拉相關信息到您的視圖模型的映射視圖模型到模型在很多地方你可能要考慮使用AutoMapper,它會簡化你的代碼。

+0

謝謝 - 那麼實體是一個單獨的模型?我需要爲ViewModel中的每個模型聲明一個實體嗎? –

+0

@MartinMcMahon正如你已經標記了你的問題EF我假設你有一個EF模型?即您從數據庫中生成了EDMX文件。 「*實體*」將引用您的實際EF實體(記錄從數據庫中提取)。 – James