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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Vollständigen Namen auf DropdownListFor anzeigen, aber ID übermitteln – ASP.NET MVC C#

by Guest » 05 Jan 2025, 14:08

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.

Top