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>
하지만입니다 "값은 null 일 수 없습니다. 매개 변수 이름 : 당신이 당신의 데이터베이스에는 사용자가없는 경우 소스 "
을 당신이하지 않은 'null'과'var name = Model.Rrole.Where (...')가 에러를 던질 수 있도록 컨트롤러 ('Ruser' 만)의'Rrole' 값을 할당했습니다 –