Я создаю небольшое веб-приложение с ASP.NET MVC C#. У меня есть две модели:Доступ к родительским данным модели из дочернего элемента в ASP.NET MVC
public class Parent
{
public Guid Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
public class Child
{
public Guid Id { get; set; }
public Guid ParentId{ get; set; }
public virtual Parent Parent { get; set; }
}
И я ParentView где я посылаю Id Parent контролеру Ребенок с ActionLink, как это:
@Html.ActionLink("something", "ChildIndexMethod", "ChildController", new { parentId=item.Id}, null)
При нажатии, мы идем в ChildIndexView и список всех детей в рамках Родительская модель. Оттуда, я хочу, чтобы иметь возможность создать нового ребенка под тем же Родитель. Чтобы создать нового ребенка, мне нужно предоставить ParentId для нового дочернего объекта. Как я могу получить этот ParentId и передать его Child?
Я сделал это:
if (Model.FirstOrDefault() != null)
{
@Html.ActionLink("New child", "NewChild", new { parentId = Model.FirstOrDefault().ParentId})
}
else
{
//What to do if Model is null?
}
Сначала я проверить, если модель не является нулевым. Если это не null, я беру объект FirstOrDefault из модели и передаю ParentId ребенку. Но он работает только в том случае, если есть дети уже под родителями. Если у детей нет родительских родителей, я не могу прочитать ParentId и, следовательно, возникла ошибка. Как я могу отправить ParentId дочернему элементу из этой позиции?
Я знаю, что это, вероятно, неправильный метод для достижения моей цели. Но я все еще учусь. Кроме того, я не смог найти ответ на SO. Любая помощь приветствуется.
Спасибо
Модель в Children View PagedList, но оба ваших метода были на месте. Спасибо – Nodios
Итак, вместо этого на IEnumerable вы можете использовать PagedList. С уважением –
tede24