Asp.net mvc 数据绑定:“System.Web.Mvc.SelectListItem”不包含名为“Id”的属性

Asp.net mvc 数据绑定:“System.Web.Mvc.SelectListItem”不包含名为“Id”的属性,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,谁能帮帮我吗我不知道我做错了什么。 在我的控制器上 public ActionResult ProdutoCategoria() { var model = db.Perfies; ViewBag.Perfies_Id = new SelectList(db.Perfies.ToList(), "Id", "NomePerfil"); return View(model); } public ActionResult consultaBD(int id) {

谁能帮帮我吗我不知道我做错了什么。 在我的控制器上

public ActionResult ProdutoCategoria()
{
    var model = db.Perfies;
    ViewBag.Perfies_Id = new SelectList(db.Perfies.ToList(), "Id", "NomePerfil");  
    return View(model);
}

public ActionResult consultaBD(int id)
{
    var selectedPerfil = (from Perf in db.Perfies
                          where Perf.Id == id
                          select new { Id = Perf.Id, Name = Perf.NomePerfil }).ToList();
    Utilizador utili = db.Utilizadores.Find(id);
    ViewBag.Perfies_Id = selectedPerfil;

    if (utili == null) { 
        return HttpNotFound();  
    }
    return View();
 }
在望

<form action="/Produto/consultoDB" method="post">
    <label>Select one </label>
    @Html.DropDownList("Perfies_Id", new SelectList(ViewBag.Perfies_Id, "Id", "NomePerfil"))
    <input type="submit" class="button success" value="Enter" />
</form>
Perfies\u Id已经是一个SelectList。将控制器中的代码更改为

ViewBag.Perfies_Id = db.Perfies.ToList();
或者为了

@Html.DropDownList("Perfies_Id", ViewBag.Perfies_Id)

select列表的select元素名称和ViewBag变量名称不能相同。他们会发生冲突。将ViewBag变量更改为类似ViewBag.Perfies\u Id\u选项的变量,您会没事的。

抱歉,Zabavsky它不起作用,我不能这样放置@Html.DropDownListPerfies\u Id,ViewBag.Perfies\u Id在我放置此ViewBag.Perfies\u Id=db.Perfies.ToList时,不会在组合框和控制器上显示perfil的名称;不起作用well@Zabavsky我认为viewbag.Perfies\u Id中viewbag之前缺少SelectList