Отображать полное имя в DropdownListFor, но отправлять идентификатор – ASP.NET MVC C#C#

Место общения программистов C#
Ответить
Anonymous
 Отображать полное имя в DropdownListFor, но отправлять идентификатор – ASP.NET MVC C#

Сообщение Anonymous »

Я пытаюсь создать форму для информации о предстоящих экзаменах. Я планирую создать раскрывающийся список, в котором будет показан список учителей, из которых можно будет выбрать, и кто будет отвечать за экзамен.
Вот упрощенная версия моих моделей:

Код: Выделить всё

public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
}

Код: Выделить всё

public class Teacher
{
public int Id { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
}

Код: Выделить всё

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; }
}
Моя модель представления:

Код: Выделить всё

public class ExamViewModel
{
public Exam Exam { get; set; }
public IEnumerable
 People { get; set; }
public IEnumerable Teachers { get; set; }
}
И мое действие «Создать» из ExamController:

Код: Выделить всё

public ActionResult Create()
{
var people = _context.People.ToList();
var teachers = _context.Teachers.ToList();

var viewModel = new ExamViewModel
{
People = people,
Teachers = teachers,
};

return View(viewModel);
}
Я хотел бы отображать People.Firstname + " " + People.Furname всех учителей в раскрывающемся списке, упомянутом выше, но вместо отправки People.Id Я хотел бы отправить Teachers.Id в Exams.TeacherId
Сначала я попытался отобразить список всех имен, прежде чем пытаться отображение имени и Фамилия со следующим html-помощником бритвы в моем представлении Create, но мне уже не удалось это сделать, поскольку я мог получить доступ к свойствам только из одного класса (

Код: Выделить всё

Teachers
) для использования — это dataValueField и dataTextField для нового SelectList():

Код: Выделить всё

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)

}
Я новичок в программировании, поэтому буду очень благодарен за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/721 ... vc-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»