Я делал это раньше, когда работал над инструментом опроса.
Итак, прежде всего вам нужно решить, какие вопросы вы будете задавать. У меня были вопросы типа SingleOption, MultiOption и FreeText.
Пользователь входит в экран администратора и выбирает тип вопроса, который он хочет добавить. Затем он нажимает кнопку «Добавить», которая отправляет запрос контроллеру / веб-службе.
Контроллер просматривает тип вопроса и добавляет запись в базу данных.
Грубая структура таблицы ниже:
QuestionID | SurveyId | QuestionTypeId
2 4 1
Это ваша основная структура.
Когда вы создадите интерфейс для ответа на вопросы, вы получите все вопросы с SurveyId = 4.
Затем вы напишите HTML-помощник, который просматривает тип вопроса и генерирует соответствующий элемент управления.
Когда дело доходит до отправки опроса или ответов на ваш вопрос, вы будете отображать все вопросы и поля ответов в некотором div, скажем, мы называем это «survey_questions». Внутри этого div будет форма, которая будет содержать все ваши вопросы и элементы управления для ответов (ввод текста, флажки и т. Д.).
Затем вы отправите эту форму через jQuery в контроллер / веб-службу. Контроллер / веб-служба будет считывать идентификатор опроса и будет перебирать все представленные значения.
Затем вы будете использовать эти значения для заполнения таблицы для хранения результатов опроса. Я понимаю, что это очень кратко и абстрактно, но я работал над этим более месяца, поэтому, если это полезно и вам нужна дополнительная помощь, пожалуйста, спросите.