Я пытаюсь научиться. 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 Я реализовал часть добавления списка, но если я запускаю код, он говорит, что список не инициализирован. Это означает, что мои данные из первого представления не передаются контроллеру.