Asp.net mvc 4 在视图中显示角色名称时出错
实际上,我想显示一个角色名来代替角色id 所以我要这么做 这些是我模特的Asp.net mvc 4 在视图中显示角色名称时出错,asp.net-mvc-4,Asp.net Mvc 4,实际上,我想显示一个角色名来代替角色id 所以我要这么做 这些是我模特的 [Table("User")] public class User { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } [Required(ErrorMessage = "Please Provide Fullname", Allo
[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; }
}
[表(“用户”)]
公共类用户
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId{get;set;}
[必需(ErrorMessage=“请提供全名”,AllowEmptyStrings=false)]
[显示(Name=“全名”)]
公共字符串全名{get;set;}
[必需(ErrorMessage=“请提供用户名”,AllowEmptyStrings=false)]
公共字符串用户名{get;set;}
[必需(ErrorMessage=“请提供密码”,AllowEmptyStrings=false)]
[数据类型(System.ComponentModel.DataAnnotations.DataType.Password)]
公共字符串密码{get;set;}
[必需(ErrorMessage=“请选择用户类型”,AllowEmptyStrings=false)]
[显示(Name=“用户类型”)]
public int ROLEID{get;set;}
[必需(ErrorMessage=“请选择登录状态”,AllowEmptyStrings=false)]
[显示(Name=“登录状态”)]
公共字符串登录\u状态{get;set;}
公共列表角色{get;set;}
UserDB=newuserdb();
公共角色getname(int id){
返回db.roles.SingleOrDefault(d=>d.ROLEID==id);
}
}
[表(“角色”)]
公共阶级角色
{
public int ROLEID{get;set;}
公共字符串ROLENAME{get;set;}
}
公共类用户角色
{
公共列表Ruser{get;set;}
公共列表错误{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);
}
public ActionResult用户列表(int?页)
{
UserDB dc=new UserDB();
List users=dc.users.ToList();
UserRole UserRole=新的UserRole();
userrole.Ruser=用户;
返回视图(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>
@model PHARMACY.Models.UserRole
@DisplayNameFor(model=>model.Ruser.First().Full_Name)
@DisplayNameFor(model=>model.Ruser.First().Username)
@DisplayNameFor(model=>model.Ruser.First().Password)
@DisplayNameFor(model=>model.Rrole.First().ROLENAME)
@DisplayNameFor(model=>model.Ruser.First().Login\u状态)
@foreach(Model.Ruser中的var项){
@DisplayFor(modelItem=>item.Full\u名称)
@DisplayFor(modelItem=>item.Username)
@DisplayFor(modelItem=>item.Password)
@{
var name=Model.Rrole.Where(i=>i.ROLEID==item.ROLEID);
@DisplayFor(m=>m.Rrole.Where(i=>i.ROLEID==item.ROLEID.FirstOrDefault());
}
@DisplayFor(modelItem=>item.Login\u状态)
@Html.ActionLink(“编辑”,“编辑用户”,新的{id=item.UserId,})
|
@Html.ActionLink(“删除”,“删除用户”,新的{id=item.UserId})
}
但它通过一个错误“值不能为空”。
参数名称:source“如果数据库中没有用户,此行将导致错误:
@Html.DisplayNameFor(model => model.Ruser.First().Full_Name)
您没有处理
model.Ruser
为空的情况。您没有在控制器中分配Rrole
的值(仅Ruser
),因此其null
和var name=model.Rrole。其中(…
引发错误