我在数据库中的表目前有3列(id,name和role)。 我正在尝试基于此表创建一个下拉列表,只有当它们具有某个角色时才会在下拉列表中显示这些名称。
下面是我的模型,然后是我的cshtml,运行时会显示所有条目的下拉列表,如何将这些条目限制为只有“admin”角色的条目。
public class Roles
{
public int id { get; set; }
[Display(Name = "Name")]
public string name { get; set; }
[Display(Name = "Role")]
public string role { get; set; }
}
<div style="float:right;">
@{
NomineesDbContext db = new NomineesDbContext();
var rolesList = db.roles.ToList();
ViewBag.roles = new SelectList(rolesList, "id", "name");
}
@Html.DropDownList("id", ViewBag.roles as SelectList, "PLT Member to call", htmlAttributes: new { @class = "form-control" })
</div>
public DbSet<Roles> roles { get; set; }
答案 0 :(得分:0)
考虑到您只想从db中选择那些记录为role = admin的记录。 以下是代码
NomineesDbContext db = new NomineesDbContext();
var rolesList = db.roles.Where(x=> x.role == "admin").ToList();
ViewBag.roles = new SelectList(rolesList, "id", "name");
但是建议您在Associated Controller Action中添加以上3行代码,在View页面中添加代码不是一个好习惯