Vollständigen Namen auf DropdownListFor anzeigen, aber ID übermitteln – ASP.NET MVC C#C#

Ein Treffpunkt für C#-Programmierer
Guest
 Vollständigen Namen auf DropdownListFor anzeigen, aber ID übermitteln – ASP.NET MVC C#

Post by Guest »

Ich versuche, ein Formular für Informationen zu bevorstehenden Prüfungen zu erstellen. Mein Plan ist es, eine Dropdown-Liste zu erstellen, die eine Liste der Lehrer zur Auswahl und die für die Prüfung verantwortlichen Personen anzeigt.
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; }
}
Mein ViewModel:

Code: Select all

public class ExamViewModel
{
public Exam Exam { get; set; }
public IEnumerable
 People { get; set; }
public IEnumerable Teachers { get; set; }
}
Und meine Aktion „Erstellen von ExamController:

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);
}
Ich möchte People.Firstname + „ “ + People.Surname aller Lehrer im oben genannten Dropdown-Menü anzeigen, aber anstatt People.Id Ich möchte Teachers.Id an Exams.TeacherId
ü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
) zu verwenden ist als dataValueField und dataTextField für new SelectList():

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)

}
Ich bin ziemlich neu im Programmieren, daher wäre ich für jede Art von Hilfe sehr, sehr dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post