у меня есть две таблицы. AT и ATD соединенные связью один ко многим.
по суть у меня есть один общий тест с характеристиками кто его делал и где(таблица АТ) и для несколько результатов (item) в таблице ATD.
я знаю как вывести детали, отредачить и удалить по ОДНОЙ строке.
например из контроллера:
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var autoTestDetail = await _context.AutoTestDetails
.Include(a => a.AutoTest)
.FirstOrDefaultAsync(m => m.AutoTestId == id);
if (autoTestDetail == null)
{
return NotFound();
}
return View(autoTestDetail);
}
я хочу вывести список. то есть у меня есть условно ТЕСТ 1. я нажимаю на ссылку и меня перебрасывает на представление со списком foreach:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Time)
</td>
<td>
@Html.DisplayFor(modelItem => item.Level)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category)
</td>
<td>
@Html.DisplayFor(modelItem => item.Message)
</td>
<td>
@Html.DisplayFor(modelItem => item.AutoTest.AutoTestId)
</td>
<td>
<a asp-action="Details" asp-route-id="@item.AutoTestDetailId">Details</a>
</td>
</tr>
я пыталась сделать так:
public async Task<IActionResult> ListDetails(int? id)
{
if (id == null)
{
return NotFound();
}
var autoTestDetail = await _context.AutoTestDetails
.Include(a => a.AutoTest)
.FirstOrDefaultAsync(m => m.AutoTestId == id);
if (autoTestDetail == null)
{
return NotFound();
}
var dataBaseContext = _context.AutoTestDetails
.Include(a => a.AutoTest);
return View(await dataBaseContext.ToListAsync());
}
то есть мне нужно чтобы произошло сравнение по айди и вывелись все строки ATD у которыйх айди например 1( передается при нажатии)
по примеру собрать не получислось. ответ найти не могу
если что переход у меня по такой ссылке
<a asp-action="ListDetails" asp-controller="AutoTestDetails" asp-route-id="@Model.AutoTestId">список items</a> |
может в ней как то надо добавить чтобы было AutoTestDetailsId(первичный ключ таблицы ATD. при нажатии на кнопку должен выводиться такой список items из таблицы ATD чтобы первычный и внешний ключ AT были равны.
кнопка находится в представлении AT и я не знаю как ее изменить чтобы, если необходимо, получить AutoTestDetailsId. тк так я могу только из ATD
когда я перехожу к списку Тестов и нажимаю на детали одного из них у меня такой путь:
https://localhost:44329/AutoTests/Details/id
где id это тот самый AutoTestId.
потом я нажимаю на кнопку выше и получаю
https://localhost:44329/AutoTestDetails/ListDetails/3
но выводятся мне и по id=3 и по остальным