2015-01-15 24 views
0

我,其實是想到位角色ID 的顯示角色名稱,以便我在做這個 這些都是我的模型的錯誤,而在一個視圖中顯示角色名稱

[Table("User")] 
public class User 
{ 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 
    [Required(ErrorMessage = "Please Provide Fullname", AllowEmptyStrings = false)] 
    [Display(Name = "Full Name")] 
    public string Full_Name { get; set; } 
    [Required(ErrorMessage = "Please Provide Username", AllowEmptyStrings = false)] 
    public string Username { get; set; } 
    [Required(ErrorMessage = "Please provide password", AllowEmptyStrings = false)] 
    [DataType(System.ComponentModel.DataAnnotations.DataType.Password)] 
    public string Password { get; set; } 
    [Required(ErrorMessage = "Please Select User type", AllowEmptyStrings = false)] 
    [Display(Name = "USER TYPE")] 
    public int ROLEID { get; set; } 
    [Required(ErrorMessage = "Please Select Login Status", AllowEmptyStrings = false)] 
    [Display(Name = "Login Status")] 
    public string Login_Status { get; set; } 
    public List<Role> role { get; set; } 
    UserDB db = new UserDB(); 
    public Role getname(int id) { 
     return db.roles.SingleOrDefault(d => d.ROLEID == id); 
    } 
} 
    [Table("ROLE")] 
public class Role 
{ 
    public int ROLEID { get; set; } 
    public string ROLENAME { get; set; } 
} 

public class UserRole 
{ 
    public List<User> Ruser { get; set; } 
    public List<Role> Rrole { get; set; } 
} 

這是我的控制器

 public ActionResult Userlist(int? page) 
    { 
     UserDB dc = new UserDB(); 
     List<User> users = dc.users.ToList(); 
     UserRole userrole = new UserRole(); 
     userrole.Ruser = users; 
     return View(userrole); 
    } 

這是我的看法

@model PHARMACY.Models.UserRole 


<table class="table table-striped table-hover "> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.Ruser.First().Full_Name) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Ruser.First().Username) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Ruser.First().Password) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Rrole.First().ROLENAME) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Ruser.First().Login_Status) 
     </th> 
     <th></th> 
    </tr> 

@foreach (var item in Model.Ruser) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Full_Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Username) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Password) 
     </td> 
     <td> 
      @{ 
      var name = Model.Rrole.Where(i => i.ROLEID == item.ROLEID); 
      @Html.DisplayFor(m => m.Rrole.Where(i => i.ROLEID == item.ROLEID).FirstOrDefault()); 
      }  
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Login_Status) 
     </td> 
     <td> 
      <p class="label label-info">@Html.ActionLink("Edit", "EditUser", new { id=item.UserId,})</p> | 
      <p class="label label-danger">@Html.ActionLink("Delete", "DeleteUser", new { id=item.UserId })</p> 
     </td> 
    </tr> 
} 

</table> 

但它通過一個錯誤, 「值不能爲空。 參數名:源」

+0

你有沒有在控制器中分配'Rrole'的值(只有'Ruser'),所以它的'null'和'var name = Model.Rrole.Where(...'拋出一個錯誤 –

回答

0

如果你在你的數據庫中沒有用戶,這條線將導致錯誤:

@Html.DisplayNameFor(model => model.Ruser.First().Full_Name) 

你不處理的情況下model.Ruser是空

相關問題