у меня есть это:цикл для подсчета всех записей на основе параметра
foreach(var item in db.AInfoes)
{
if (db.MRecords.Any(s => s.AID == item.ID))
{
ViewBag.RecordExists = true;
}
else if(!db.MRecords.Any(s => s.AID == item.ID))
{
ViewBag.NoRecordExists = true;
}
}
Целью этого является, чтобы скрыть ссылку на мой взгляд .cshtml
Index. Я хочу прокрутить таблицу AInfoes
и проверить, существуют ли какие-либо записи в таблице MRecords
на основе внешнего ключа, AID
, соответствующих первичному ключу ID
.
Тогда в представлении по умолчанию Index есть Edit
, Details
, Delete
ссылки для каждой записи. Я хочу только ссылку Edit
, если вы видите ViewBag.NoRecordExists = true
. так что если их нет MRecords
для этого ID
Мой CSHTML:
@if (!ViewBag.RecordExists)
{
@Html.ActionLink("Edit Maintenance Record", "Edit", "MaintenanceRecords", new { id = item.ID })
}
@if (ViewBag.NoRecordExists == true)
{
@Html.ActionLink("Edit Maintenance Record", "Edit", "MaintenanceRecords", new { id = item.ID })
}
В моих MRecords дб Я нарочно проверил это, удалив все MRecords
где ID
равняется 10 .. но когда я пошел мой индекс, ссылка была там для всех записей .. снова я хочу, чтобы ссылка отображалась только для записей, где есть 0 MRecords
Любая помощь приветствуется.
Я сделал изменения, которые вы предложили. в моем '.cshtml' Я поставил:' @if (recordExists) { @ Html.ActionLink («Редактировать записи обслуживания», «Изменить», «MRecords», новый {id = item.ID}) } и я намеренно удалил все 'MRecord', где' ID' равно 10. поэтому мой * Index * View для ** AInfoes ** должен отображать только ссылку * Редактировать * для этой записи. Но вместо этого он показывает ссылку «Изменить» для всех записей в таблице ** AInfoes **, даже если у них есть 'MRecords' –
. Вероятно, это означает, что' ViewBag.RecordExists' либо оценивает значение null (он вообще не установлен), либо просто не может быть передан в bool (он устанавливается на нечто, отличное от булевского типа). В любом случае эта строка кода в вашем представлении затем будет оцениваться как «ложь» в качестве резервной копии. –
'var aInfoesIds = db.AInfoes.Select (x => x.ID) .ToList();' содержит 5 значений '6, 7, 8, 9, 10' ..' ViewBag.RecordExists = db.MRecords.Any (x => aInfoesIds.Contains (x.AID)); 'оценивается как true .. даже если нет каких-либо' MRecords' для 10? –