Я хочу передать две модели для просмотра. У меня есть две моделиЭлемент модели, переданный в словарь, имеет тип «System.Tuple MVC
public class Department
{
public int DepartmentID { get; set; }
public string DepartmentName { get; set; }
public string Image { get; set; }
public List<Teacher> Teachers { get; set; }
}
и второй
public class Teacher
{
public int TeacherID { get; set; }
public string TeacherName { get; set; }
public string TeacherLname { get; set; }
public int DepartmentID { get; set; }
public string Image { get; set; }
public Department Department { get; set; }
}
Я сделал ViewModel
public class ViewModel
{
public List<Teacher> Teachers { get; set; }
public List<Department> Departments { get; set; }
}
Мой контроллер
public ActionResult Index()
{
ViewModel model = new ViewModel();
// retreive from database
model.Teachers = new List<Teacher>() { new Teacher() };
model.Departments = new List<Department>() { new Department() };
return View(model);
}
и в представлении меня следующий
@model Tuple<IEnumerable<_167School.Models.Teacher>,IEnumerable<_167School.Models.Department>>
@foreach (var student in Model.Item2)
{
<tr>
<td>@student.DepartmentName</td>
</tr>
}
@foreach (var teacher in Model.Item1)
{
<tr>
<td>@teacher.TeacherName</td>
<td>@teacher.TeacherLname</td>
<td>@teacher.DepartmentID</td>
</tr>
}
и сайт идет во время выполнения и скажите мне, что
The model item passed into the dictionary is of type '_167School.ViewModels.ViewModel', but this dictionary requires a model item of type 'System.Tuple`2[System.Collections.Generic.IEnumerable`1[_167School.Models.Teacher],System.Collections.Generic.IEnumerable`1[_167School.Models.Department]]'.
Я хочу, чтобы отобразить две модели данных в одном месте. Я пробовал этот путь.
ПОМОГИТЕ Благодарности
Вы рассматриваете потребности быть '@model ViewModel'. Затем войдите в модель с помощью '@foreach (учитель var в Model.Teachers) {....}' –
, когда я использую @Model на мой взгляд, View не смог найти мою модель представления и как я могу сказать, Я использую aa Tuple? –
Не используйте 'Tuple'! Ваш передающий тип 'ViewModel' для представления. Убедитесь, что вы используете полное имя - '@model YourAssembly.ViewModel' или добавьте оператор' @ using'. –