C # получение данных из динамически созданной HTML-формы - PullRequest
0 голосов
/ 12 октября 2019

Я создаю приложение 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...