Я пытаюсь отобразить атрибуты Lecturer, извлеченные из базы данных SQL и сохраненные в списке в моем представлении Razor, но когда оно достигает строки:
foreach (var lec in (List<LecturerModel>)ViewData["lecturers"])
Я получаю ошибку:
System.InvalidCastException: 'Невозможно привести объект типа' System.String 'к типу' System.Collections.Generic.List`1 [ADO.Models.LecturerModel] '.'
DATA
List<LecturerModel> Lecturers = new List<LecturerModel>();
string query = "SELECT * FROM Lecturer";
SqlCommand cmd = new SqlCommand(query, connection);
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
LecturerModel lecturer = new LecturerModel()
{
LecturerId = (int)rd["Id"],
FirstName = (string)rd["FirstName"],
LastName = (string)rd["LastName"],
PracticeId = (int)rd["PracticeId"],
SessionId = null
};
Lecturers.Add(lecturer);
}
CONTROLLER
List<LecturerModel> Lecturers = LecturerData.GetLecturers();
ViewData["Lecturers"] = "lecturers";
return View();
}
VIEW
@model ADO.Models.LecturerModel
@using (Html.BeginForm("Login", "Home", FormMethod.Post))
{
<table>
@{
foreach (var lec in (List<LecturerModel>)ViewData["lecturers"])
{
<tr>
<td>@lec.FirstName</td>
<td>@lec.LastName</td>
<td>@lec.Username</td>
</tr>
}
}
</table>