@andrey71
админю и учу C#, ASP.NET Core

Как победить несоответствие типов?

Добрый день!

Я изучаю ASP.NET Core 2.1 и делаю тестовый проект. Столкнулся с такой проблемой: При выводе всех сотрудников - проблем нет. Всё отображается корректно. Но при выводе одних лишь организаций- я получаю ошибку :(

Подскажите пожалуйста, как при передаче во View избежать ошибки "InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'System.Collections.Generic.List`1[System.String]', but this ViewDataDictionary instance requires a model item of type 'System.Collections.Generic.List`1" ?

Пните в нужном направлении...

Заранее спасибо!

Модель :

public class Emploee
    {
        public int Id { get; set; }
        public int Num_prop { get; set; }        
        public string Organization { get; set; }
        public string FIO { get; set; }
}


Контроллер :
public class HomeController : Controller
    {
        ApplicationContext db;

        public HomeController(ApplicationContext context)
        {
            db = context;
        }

        public IActionResult Index()
        {
            var testSelect = db.Emploee                
                .Select(o => o.Organization)
                .Distinct()
                .ToList()                
            
            return View(testSelect);
        }
}


Представление :

@model IEnumerable<TST_net_core_EF_web.Models.Emploee>

@{
    ViewData["Title"] = "Home Page";    
}

<div class="container">
    <table class="table table-striped table-bordered text-center">
        <tr>           
            <td>Организация</td>           
        </tr>
        @foreach (var emp in Model)
        {
            <tr>               
                <td>@emp.Organization</td>                
            </tr>
        }
    </table>
</div>
  • Вопрос задан
  • 611 просмотров
Решения вопроса 1
AlexNineteen
@AlexNineteen
Привет.
У тебя представление принимает список сотрудников (IEnumerable<TST_net_core_EF_web.Models.Emploee>), а ты передаёшь List<string>.
Вот и вся ошибка
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы