我有一個列出所有用戶的索引頁面。這已在用戶控制下 -從使用模型更改爲ViewModel
public ViewResult Index()
{
return View(userRepository.AllIncluding(user => user.Roles));
}
,然後觀與
@model IEnumerable<TRS.Models.User>
開始,然後使用
@foreach (var item in Model) {
遍歷在我的模型的所有用戶。
我現在需要將我的模型更改爲包含用戶模型和擴展UserDetails模型的ViewModel。
我已經改變了我的索引視圖使用視圖模型 -
@model IEnumerable<TRS.ViewModels.RegisterViewModel>
但我不知道我應該如何去約在我的控制器填充視圖模型 -
public ViewResult Index()
{
var viewModel = new RegisterViewModel
{
UserName = "???"
FirstName = "???"
LastName = "???"
};
return View(viewModel);
}
我假設我需要創建視圖模型的實例,然後將其傳遞給視圖。但我不明白我如何才能針對每個單獨的項目獲取數據。我顯然需要在這裏獲取所有用戶的所有數據,然後在我的視圖中遍歷它們。任何想法我應該在控制器上面去?什麼應該取代「???」這將填充viewModel的所有數據?或者這是錯誤的方法?
感謝
編輯 - 添加模型 -
public class User
{
[Key]
public string UserName { get; set; }
public virtual ICollection<Role> Roles { get; set; }
public virtual UserDetails UserDetails { get; set; }
}
public class UserDetails
{
[Key]
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
[Required]
public virtual User User { get; set; }
}
編輯 - 從視圖 -
<td>
@foreach (Role role in item.Roles){
@role.RoleName <br />
}</td>
感謝您的。它似乎現在部分工作,我的視圖顯示用戶名(但沒有其他數據),其他數據來自UserDetails模型。這個數據現在是否可用? –
你在說什麼其他數據?什麼是UserDetails?請出示您的模型。 –
我已經編輯了上面的內容來包含我的User和UserDetails模型。謝謝你的幫助。 –