Hier ist eine vereinfachte Version meiner Modelle:
Code: Select all
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
}
Code: Select all
public class Teacher
{
public int Id { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
}
Code: Select all
public class Exam
{
public int Id { get; set; }
public string Subject { get; set; }
public DateTime ExamDate { get; set; }
public int TeacherId { get; set; }
public Teacher Teacher { get; set; }
}
Code: Select all
public class ExamViewModel
{
public Exam Exam { get; set; }
public IEnumerable
People { get; set; }
public IEnumerable Teachers { get; set; }
}
Code: Select all
public ActionResult Create()
{
var people = _context.People.ToList();
var teachers = _context.Teachers.ToList();
var viewModel = new ExamViewModel
{
People = people,
Teachers = teachers,
};
return View(viewModel);
}
übermitteln. Ich habe zuerst versucht, eine Liste aller Vornamen anzuzeigen, bevor ich es versucht habe Anzeige von FirstName und Nachname mit dem folgenden Razor-HTML-Hilfsprogramm in meiner Ansicht „Erstellen“, aber ich bin dort bereits gescheitert, da ich nur von einer einzigen Klasse aus auf die Eigenschaften zugreifen konnte (
Code: Select all
Teachers
Code: Select all
Plan exam
@using (Html.BeginForm("Create", "ExamController"))
{
@Html.DropDownListFor(m => m.Exam.TeacherId, new SelectList(Model.Teachers, "Id", "FirstName"), "-- Please select --", new { @class = "form-control", @placeholder = "Teacher" })
@Html.LabelFor(m => m.Exam.TeacherId)
}