'Système.Web.Mvc.SelectListItem' ne contient pas une propriété avec le nom " id " #2
J'ai les entités suivantes:
public class Entidad
{
[Key]
public int Id { get; set; }
public string Nombre { get; set; }
public virtual ICollection<Propiedad> Propiedades { get; set; }
}
public class Propiedad
{
[Key]
public int Id { get; set; }
public virtual Entidad Entidad { get; set; }
public string Codigo { get; set; }
public string Nombre { get; set; }
public string TipoDeDatos { get; set; }
}
Et j'ai cette action de contrôleur
public ActionResult Create()
{
ViewBag.Entidad = new SelectList(db.Entidades);
return View();
}
et sur mon point de vue:
<div class="form-group">
@Html.LabelFor(model => model.Entidad, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.Entidad.Id, new SelectList(ViewBag.Entidad, "id", "nombre", 0), "Seleccionar", new { @class = "form-control" })
</div>
</div>
Cependant, j'obtiens cette erreur:
De Liaison De Données: 'Système.Web.Mvc.SelectListItem' ne contient pas une propriété avec le nom "id".
J'ai aussi essayé avec Camel Id de Cas, mais toujours le même.
- J'ai édité ton titre. Se reporter à la rubrique "si vous avez des questions comprennent “tags” dans leurs titres?", où le consensus est "non, ils ne devraient pas".
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez modifier le nom de votre
ViewBag
de la propriété de sorte qu'il n'entre pas en conflit avec votre modèle de propriété (pour direEntidadList
) et puis dans leSelectList
constructeur, spécifiez les propriétés à utiliser comme valeur et les champs de textePuis dans l'utilisation de vue
Notes:
EntidadList
est déjà unSelectList
- il n'est pas nécessaire de créerune nouvelle d'elle.
SelectList
constructeur (où votre jeupour
"0"
) n'est pas nécessaire et est ignoré. L'option qui est lasélectionné dans la vue est basé sur la valeur de
Entidad.Id
ViewBag.Entidad = new
où vous ne définissez pas la valeur et le texteSelectList(db.Entidades);
les champs moyens de sa création
SelectListItems
avec une valeur deSystem.Web.MVC.SelectListItem>
(unstring
) qui n'ont pas depropriété nommée
id
, d'où l'erreur de la vue lorsque vous essayez decréer un nouveau
SelectList
de ilnew
devrait pas être làréponse tardive, désolé. Déclarer ViewBag.De liste de Liste en tant que<> dans le contrôleur. puis l'utiliser pour créer la liste de sélection dans la vue de la nouvelle SelectList(Viewbag.Liste de, "ID", "Propriété", en option valeur sélectionnée)