Как отобразить только указанные c данные из таблицы базы данных в NET MVC? - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь научиться. NET MVC и я столкнулся с небольшой проблемой. У меня есть таблица в моей базе данных с именем Cars , которая содержит информацию о них (например, местоположение, идентификатор автомобиля ...), и я хочу отображать на странице только автомобили в заданном местоположении (Speci c rows).

Я пробовал это, добавляя определенные c строки из таблицы в список и передавая их в View, но я не понимаю, как читать детали (Расположение ...) и передайте его контроллеру, чтобы выбрать эти строки и добавить их в список. И как должно быть правильно привязать 2 представления, одно, которое получает детали, и другое, которое отображает строки из списка?

Вот что я пробовал:

Контроллеры:

 public ActionResult AvailableCars()
        {
            return View();
        }

[HttpPost]
        public ActionResult AvailableCars(string Location)
        {
            List<Cars> carList = null;

            if (ModelState.IsValid)
            {

             //add cars to the list
            }
            if(carList == null)
            {
                ModelState.AddModelError("", "No available cars");
            }

            return View(carList);
        }

Модель:

 public partial class Cars
    {
        public int CarID { get; set; }
        public string Plate { get; set; }
        public string Manufacturer { get; set; }
        public string Model { get; set; }
        public string Location { get; set; }
    }

Просмотры:

Это для получения деталей, и он работает.

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <hr />
 <div class="form-group">
            @Html.LabelFor(model => model.Location, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Location, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Location, "", new { @class = "text-danger" })
            </div>
        </div>


        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Search" class="btn btn-default" />
            </div>
        </div>
    </div>
}

Это один предназначен для отображения строк из списка

@model IEnumerable<RentC.UI.Models.Cars>

@{
    ViewBag.Title = "Available Cars List";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Plate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Manufacturer)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Model)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Location)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Plate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Manufacturer)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Model)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Location)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.CarID }) |
            @Html.ActionLink("Details", "Details", new { id=item.CarID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.CarID })
        </td>
    </tr>
}

</table>

PS Я реализовал часть добавления списка, но если я запускаю код, он говорит, что список не инициализирован. Это означает, что мои данные из первого представления не передаются контроллеру.

1 Ответ

0 голосов
/ 27 мая 2020

Изменить:

 List<Cars> carList = null;

Кому:

 List<Cars> carList = new List<Cars>();

Вы должны инициализировать список, прежде чем вы сможете помещать в него что-либо.

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