В проекте mvc я хочу реализовать поиск, при этом результаты должны выводиться в блоке ниже, а не на другой странице.
форма поиска находится в частичном представлении, список найденных элементов тоже.
форма поиска:
<div>
@using (Ajax.BeginForm("_RealtyItemsList", new AjaxOptions { UpdateTargetId = "results" }))
{
<select class="form-select" id="realty-type" aria-label="Default select example" name="RealtyType" style="width:100px">
<option value=@realtyStore.Models.Types.APARTMENT>@realtyStore.Models.Types.APARTMENT</option>
<option value=@realtyStore.Models.Types.ROOM>@realtyStore.Models.Types.ROOM</option>
<option value=@realtyStore.Models.Types.HOUSE>@realtyStore.Models.Types.HOUSE</option>
<option value=@realtyStore.Models.Types.BED>@realtyStore.Models.Types.BED</option>
<option value=@realtyStore.Models.Types.GARAGE>@realtyStore.Models.Types.GARAGE</option>
<option value=@realtyStore.Models.Types.WAREHOUSE>@realtyStore.Models.Types.WAREHOUSE</option>
<option value=@realtyStore.Models.Types.BUILDING>@realtyStore.Models.Types.BUILDING</option>
<option value=@realtyStore.Models.Types.TRADING_AREA>@realtyStore.Models.Types.TRADING_AREA</option>
<option value=@realtyStore.Models.Types.PRODUCTION>@realtyStore.Models.Types.PRODUCTION</option>
<option value=@realtyStore.Models.Types.OFFICE>@realtyStore.Models.Types.OFFICE</option>
</select>
<div class="input-group">
<p>Цена</p>
<input placeholder="от" name="minPrice" type="number" />
<input placeholder="до" name="maxPrice" type="number" />
</div>
<div class="input-group" id="square" style="display:none">
<p>Площадь</p>
<input placeholder="от" name="minSquare" type="number" />
<input placeholder="до" name="maxSquare" type="number" />
</div>
<div class="checkBox-group" id="numRooms">
Количество комнат
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" value="1" id="flexCheckDefault" name="NumberRoom[]">
<label class="form-check-label" for="flexCheckDefault">
1
</label>
<input class="form-check-input" type="checkbox" value="2" id="flexCheckChecked" name="NumberRoom[]" checked>
<label class="form-check-label" for="flexCheckChecked">
2
</label>
</div>
</div>
<select class="form-select" aria-label="default select example" name="City" style="width:100px">
@foreach (var c in ViewBag.Cities)
{
<option value=@c.Name>@c.Name</option>
}
</select>
<input id="search" type="submit" value="Поиск" />
}
<div id="results"></div>
</div>
<script src="@Url.Content("~/Scripts/formRent.js")" type="text/javascript"></script>
_RealtyItemList.chtml - частичное представление, где должны выводиться результаты поиска. файл лежит в Views/Home, рядом с формой поиска
@model IEnumerable<realtyStore.Models.Realty>
@foreach (var r in ViewBag.Realties)
{
<div class="realtyItem">
<div class="realtyItem__img">
<a href="Flat/@r.Id"><img src=@r.ImgUrl alt="photo" /></a>
</div>
<div>
<a href="Flat/@r.Id"><p class="realtyItem__title">@r.Status @r.Type</p></a>
<p class="realtyItem__desc_mini">
@if (r.NumberRoom != null)
{<span>@r.NumberRoom -комн. </span>}
@r.Type, r.Squre кв.м.,
@if (@r.Floor != null)
{<span> @r.Floor /</span>} @r.Floors эт.
</p>
<p class="realtyItem__price"> @r.Price руб.</p>
</div>
</div>
}
homeController:
пока пытаюсь хотя бы зайти в метод и получить данные
[HttpPost]
protected ActionResult _RealtyItemsList(Realty realty)
{
return PartialView(realty);
}
при попытке отправить форму, переход по адресу
https://localhost:44351/Home/_RealtyItemsList
и ошибка
Не удалось найти данный ресурс.
Описание: HTTP 404. Возможно, искомый ресурс (или одна из его зависимостей) удален, получил другое имя или временно недоступен. Просмотрите следующий URL-адрес и проверьте, что он введен правильно.
Запрошенный URL: /Home/_RealtyItemsList
сразу хочу задать еще один вопрос
вот так заполняю таблицу
db.Owners.Add(new Owner { Id = 0, LastName = "Яковлева", FirstName = "Айлин", Patronymic = "Дмитриевна", Phone = "895102345612", Passport = "1420 777799", CityId = 2, Address = "" });
db.Owners.Add(new Owner { Id = 1, LastName = "Кошелев", FirstName = "Демид", Patronymic = "Матвеевич", Phone = "89997777777", Passport = "1418 774577", CityId = 0, Address = "" });
db.Owners.Add(new Owner { Id = 2, LastName = "Игнатов", FirstName = "Андрей", Patronymic = "Давидович", Phone = "89301234567", Passport = "1415 713757", CityId = 1, Address = "" });
но данные получаются такими
db.Owners.ToList()[0].Id; // =1
db.Owners.ToList()[1].Id; // =2
db.Owners.ToList()[2].Id; // =3