Il n'y a pas de ViewData élément de type 'IEnumerable<SelectListItem>" qui a la clé “key”
Mon code est comme ça
namespace DiagnosisApp.Models
{
public class ProcedurePrice
{
public int ID { get; set; }
public int DepartmentID { get; set; }
public int ProcedureID { get; set; }
public int InsuranceProviderID { get; set; }
public int ProcedureCategoryID { get; set; }
public int ProcedureSubCategoryID { get; set; }
[ForeignKey("ID")]
public virtual Department Department { get; set; }
[ForeignKey("ID")]
public virtual InsuranceProvider InsuranceProvider { get; set; }
[ForeignKey("ID")]
public virtual ProcedureCategory ProcedureCategory { get; set; }
[ForeignKey("ID")]
public virtual ProcedureSubCategory ProcedureSubCategory { get; set; }
}
}
Contrôleur
public ActionResult Create()
{
ViewBag.DepartmentID = new SelectList(db.Departments, "ID", "Name");
ViewBag.ProcedureSubCategoryID = new SelectList(db.ProcedureSubCategories, "ID", "Name");
return View();
}
Et de mon point de vue
@Html.DropDownList("ProcedureID", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ProcedureID)
Tout semble ok pour moi, Mais il déclenche une erreur
There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'ProcedureID'.
Quelqu'un peut-il point de ce que je fais de mal ici?
Je suppose que le problème avec cette chaîne
Difficile de comprendre ce que vous avez réellement vouloir se lier à. Si vous souhaitez lier à
@Html.DropDownList("ProcedureID", null, new { @class = "form-control" })
vous devez spécifier SelectList
je pense que comme ce @Html.DropDownList("ProcedureID", Model.ProcedureCategory, new { @class = "form-control" })
si vous remplissez cette liste quelque part pour l'ex - dans votre Contrôleur de Créer, comme vous le faites avec ProcedureSubCategories
Difficile de comprendre ce que vous avez réellement vouloir se lier à. Si vous souhaitez lier à
int ProcedureID
, votre besoin d'inclure un SelectList
pour les procédures (de préférence à l'aide d'un modèle de vue, sinon ViewBag
) et de l'utiliser comme deuxième paramètre de @Html.DropDownList
OriginalL'auteur Athul | 2015-01-13
Vous devez vous connecter pour publier un commentaire.
L'erreur est mise en
ViewBag.ProcedureSubCategoryID
alors que vous êtes de passage àProcedureID
intHtml.DropDownList()
et aussi vous êtes de passage àSelectList
paramètrenull
. Une solution rapide est de simplement remplacerProcedureSubCategoryID
avecProcedureID
dansHtml.DropDownList()
comme la touche en premier paramètre:vous avez trois façons de résoudre ce problème.
Voie 1:
Au lieu de passer
null
en second paramètre qui accepte de typeSelectList
vous pouvez faire quelque chose comme ceci:Way2:
3:
ou alternative est de le stocker dans
ProcedureID
dans votre action:et en Vue:
OriginalL'auteur Ehsan Sajjad
Je suppose que vous avez manqué quelque chose comme
Je pense que vous avez à inizialize ViewBag.ProcedureId
OriginalL'auteur Luca Morelli
si vous utilisez partielle, c'est très simple ,vous pouvez trouver une solution en cas d'erreur
cette erreur de dire que vous n'avez pas Afficher les Données de type SelectListItem que la clé était "ProcedureId'
je pense que vous l'utilisation Partielle de votre créer et appeler sur votre Page d'Index
Donc, vous devriez passer ce code sur votre index action résultat que, comme mon code:
OriginalL'auteur hossein andarkhora