Ich bin neu bei asp.net mvc und habe Probleme, DropDownList mit der im Titel erwähnten Fehlermeldung zu validieren.Es gibt kein ViewData-Element vom Typ 'IEnumerable <SelectListItem>' mit dem Schlüssel 'FirstMentor'
Mein Controler:
public ActionResult SelectMentors(int courseId)
{
var mentors = db.Mentor.Where(m => m.CoursesId == courseId).
Select(x => new SelectListItem
{
Value = x.FullName,
Text = x.FullName,
});
ViewBag.MentorList = mentors;
return View();
}
[HttpPost]
public ActionResult SelectMentors(StudentSelections model)
{
if (ModelState.IsValid)
{
db.StudentSelection.Add(model);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
else
return View();
}
SelectMentors Modell
public class StudentSelections
{
[Key]
public int Id { get; set; }
[Required]
[Display(Name="Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "LastName")]
public string LastName { get; set; }
[Display(Name = "E-mail adress")]
public string Email { get; set; }
[Required]
[Display(Name = "1.")]
public string FirstMentor { get; set; }
}
Und meine Ansicht:
@Html.LabelFor(model => model.FirstMentor, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.FirstMentor, (IEnumerable<SelectListItem>)ViewBag.MentorList, "-- select --", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.FirstMentor)
</div>
</div>
Daten für Mentoren aus der Datenbank retriving und über ViewB weitergegeben ag in Ansicht mit StudentSelections Modell kombiniert, occures Fehler beim filds Pflicht
Das ist kein OP-Problem.OP haben Problem auftritt, wenn er sehen –
10 @teovankot Sie sicher? Ich nahm an, dass "Fehler auftritt, wenn Required filds missing", dass OP eine Post macht, ModelState ungültig ist und die Seite nicht geladen werden kann, da sich in der Viewbag für MentorList nichts befindet. Ich stimme zu, dass die Verwendung des Modells ein besserer Ansatz ist, aber OP sollte in diesem Fall keine Fehler mit ViewBag bekommen. Sieh die Geige in meiner Antwort. –
Ok, mein Schlechter, könntest du Recht haben –