Я создаю приложение ASP.Net, которое отображает записи из базы данных SQLite и включает параметры фильтра, которые строятся из поступающих записей, так как я не знаю, какие данные будут в столбцах. У меня есть фильтр на месте, и я создам HTML-форму, которая будет отображать значение поля и количество записей с этим значением. Однако я не уверен, как получить эти данные, поскольку, насколько мне известно, метод получения в контроллере будет ожидать соответствующий параметр для каждой переменной (HTML form: value = "bob", метод получения в контроллере принимаетпараметр, такой как строка bob). Мой код для генерации HTML-формы:
<div>
<text>Employment:</text> <br />
@foreach (var employment in Model.Employment)
{
<input type="checkbox" value="{@employment.Key}"/>@employment.Key <text>(@employment.Value)</text> <br />
}
<hr />
</div>
Так как, например, может быть выбрано 15 различных вариантов выбора, как мне получить все сгенерированные значения? Кроме того, есть еще около 5 таких разделов для параметров фильтра. Можно ли передать все выборки в виде словаря, например
<key,<key,value>>
, а затем проанализировать вложенные словари? Затем в словарях будет содержаться основная категория фильтров (основной ключ), а затем каждая принятая опция фильтра (значение / ключ родителя) в этой категории со значением (для значения значения родителя).
Редактирование: Добавлениенекоторый код дополнения по запросу. Это класс, представляющий сотрудника для компании:
public class MemberModel
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string EmailAddress { get; set; }
public string PhoneNumber { get; set; }
public string Position { get; set; }
public string Department { get; set; }
public string StartDate { get; set; }
public string EndDate { get; set; }
public string EmploymentStatus { get; set; }
public string Shift { get; set; }
public string Manager { get; set; }
public string Photo { get; set; }
public string FavoriteColor { get; set; }
}
Это может быть необязательно для реализации, но для меня имеет смысл создавать это приложение. Это класс, который содержит список всех сотрудников и словарей, которые я использую для построения параметров фильтра:
public class TeamMembersModel
{
public Dictionary<string, int> Employment { get; set; }
public Dictionary<string, int> Position { get; set; }
public Dictionary<string, int> Shift { get; set; }
public Dictionary<string, int> Department { get; set; }
public Dictionary<string, int> Manager { get; set; }
public List<MemberModel> Employees { get; set; }
}
Этот код является сжатой версией того, как я строю форму для фильтрации:
<form asp-action="" asp-controller="TeamMembers" method="get">
<!-- Department -->
<div>
<text>Department:</text> <br />
@foreach (var departments in Model.Department)
{
<input type="checkbox" value="@departments.Key" />@departments.Key <text>(@departments.Value)</text> <br />
}
<hr />
</div>
<!-- This is repeated for each dictionary in the TeamMembersModel class -->
<button type="submit" value="Filter">Filter</button>
</form>