Я новичок в asp. net core и начинающий программист. Я занимаюсь созданием приложения, которому требуется страница, которая обновляет элементы и дочерние элементы на той же странице. Обновить родительские данные просто, но я немного не понимаю, как обновлять дочерние элементы.
Вот упрощенная модель элементов и дочерних элементов:
public class Test
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<TestChild> TestChildren { get; set; }
}
public class TestChild
{
public int ID { get;set; }
public string ChildName { get;set; }
public int TestID { get;set; }
public Test Test {get; set; }
}
Я визуализирую это для пользователя на веб-странице Razor с использованием кода, аналогичного этому:
...
<input asp-for="Test.Name" class="form-control" />
@foreach (var child in Model.Test.TestChildren)
{
<input name="TC.@child.ID" value="@child.ChildName">
}
...
Мой план состоял в том, чтобы использовать поле Name в дочернем поле ввода, чтобы вернуть идентификатор каждой дочерней записи, и это вместе с полем значения позволит мне обновить правильную запись. Это означает, что когда форма была отправлена, возвращенные данные могут быть похожи на следующие:
TC.4 = "Child 1"
TC.6 = "Child 2"
TC.9 = "Child 3"
Где .X - это идентификатор связанного дочернего элемента, а имя - это новое / обновленное имя. На самом деле я бы хотел каким-то образом вернуть словарь, где ключ - это идентификатор, а значение - это имя.
Однако, если я использую приведенный выше код при публикации формы, я не знаю, какой тип объявить переменную как, которая передается в функцию onpost, как показано ниже:
public async Task<IactionResult> OnPostAsync(int id, ???????????)
{
...
What variable type should I use to map to the data above?
}
Итак, мои вопросы:
- Это лучший способ обновления дочерних записей?
- Это более простой / лучший способ связать идентификатор и значение дочерних записей и передать их обратно в функцию onpost?
- Если то, что у меня есть, верно, что мне нужно объявить переменную как в онпосте?
Спасибо за помощь