Я пытаюсь включить две модели в мою страницу индекса - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь добавить модели "Автомобили" и "Клиенты" на мою домашнюю страницу, чтобы создать функцию поиска, которая после нажатия отправляет на другую страницу, где есть таблица автомобилей и клиентов, которые соответствуют критериям поиска.

Я создал класс модели представления со всеми полями, которые я хотел в классе

 public class HomeViewModel

{
    public string CustomerName { get; set; } // Customer

    public string LicenseNo { get; set; }//Customer

    public int CustomerID { get; set; } //Customer

    public int CarID { get; set; } //Car

    public string Make { get; set; } // Car

    public string Model { get; set; } // Car

    public string RegNumber { get; set; } //Car

    public string Colour { get; set; } //Car

    public int CarCategoryID { get; set; } //Car Category

    public string CarCategoryName { get; set; } //Car Category
}

Затем в свой HomeController я добавил следующее

public ActionResult Index(string Search)
    {
        ViewBag.asad = Search;
        List<HomeViewModel> homeViewModels = new List<HomeViewModel>(); // to hold list of Customer and order details

        var customerlist = (from Cust in db.Customers

                            join Ord in db.Cars on Cust.CustomerID equals Ord.CarID
                            select new
                            {
                                Cust.CustomerName,
                                Cust.CustomerID,
                                Cust.LicenseNo,
                                Ord.CarID,
                                Ord.Make,
                                Ord.Model,
                                Ord.RegNumber,
                                Ord.Colour,
                                Ord.CarCategoryID,
                                Ord.CarCategory.CarCategoryName,

                            }).ToList();

        //query getting data from database from joining two tables and storing data in customerlist

        foreach (var item in customerlist)

        {
            HomeViewModel objcvm = new HomeViewModel(); // ViewModel

            objcvm.CustomerID = item.CustomerID;
            objcvm.CustomerName = item.CustomerName;
            objcvm.LicenseNo = item.LicenseNo;
            objcvm.CarID = item.CarID;
            objcvm.Make = item.Make;
            objcvm.Model = item.Model;
            objcvm.RegNumber = item.RegNumber;
            objcvm.Colour = item.Colour;
            objcvm.CarCategoryID = item.CarCategoryID;
            objcvm.CarCategoryName = item.CarCategoryName;

            homeViewModels.Add(objcvm); //Using foreach loop fill data from custmerlist to List<CustomerVM>.
        }
            return View(homeViewModels); //List of HVM (ViewModel)

Этот код не является возвращая null но возвращая count=0 но у меня есть данные в полях

1 Ответ

1 голос
/ 19 марта 2020

Ядро никогда не вернет null, потому что вы уже инициализировали список homeViewModels в самом начале.

Теперь, если число = 0 в модели означает, что ваш customerlist также пуст. Который приходит из базы данных, поэтому я думаю, что не найдено ни одной подходящей записи или условие соединения неверно

Вы присоединяетесь к автомобилю CarID с клиентом CustomerID, что выглядит неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...