Правильное связывание отношения многие-к-одному в форме с одной функцией post

В этом примере я некоторое время боролся с лучшими практиками, и я не могу понять, что это правильно. Вот модель, которую я пытаюсь выполнить в представлении, а затем привязать ее к модели в сообщении. Это test тест имеет несколько атрибутов, а также набор testItems (отношение один ко многим)

Код моделей для вышеуказанной формы будет таким:

public class Test
{
    public int TestID { get; set; }
    public virtual ICollection<TestItem> TestItems { get; set; }
}

public class TestItem
{
    public int TestID { get; set; }
    public int TestItemScore { get; set; }
    public int? TestID { get; set; }
    public virtual Test Test { get; set; }
}

В настоящее время Мои методы для публикации формы будут заключаться в создании метода публикации

это берет модель и затем два массива, один из вопросов и один из ответов, затем они превращаются в объекты в функции post, а затем добавляются в модель, которую я передал функции следующим образом.

public ActionResult PostATest (Test test, string[] questions, string[] answers){
   //create a list of test.testItems
   //create a new test item class
   //loop over the array of questions and add an answer and question to the test item class
   //add the test item to the test
   //repeat until all questions and answers are added to new object


   //save the test object to the db context.
   db.tests.save(test);
}

Таким образом, приведенный выше код - это то, как я выполнял большинство из этих общих практик, но с этим есть серьезные проблемы, особенно когда я возвращаюсь назад и пытаюсь создать модель, которую я могу редактировать.

Большая часть HTML должна быть сделана вручную с использованием похожих имен переменных, чтобы сделать строковые массивы связываемыми.

В идеале я хотел бы иметь функцию в своем посте, которая будет просто (функция ниже), которая будет знать, что внутри этой модели много моделей один. Он должен быть гибким, чтобы при отправке формы он автоматически создавал тестовую модель и передавал ее посту, а также создавал модель testItem.

 public actionResult testPost(Test test){

    }

или, по крайней мере, есть сообщение, что сообщения, как это может быть

public actionResult testPost(Test test, TestItem[] testItem){

}

Я делал это так, как описано выше в первом методе публикации, около месяца, и я не могу найти ЛЮБОГО другого способа сделать это, не превращая каждый элемент в тесте в свою собственную форму.

Тщательный способ решить эту проблему будет принята с благодарностью. Предоставленный код является просто примером кода, если требуется какой-то из моих фактически реализованных кодов, просто спросите. Я сделал это в нескольких разных контекстах, и должен быть лучший способ решения этой проблемы.

Самая большая проблема с тем, как я сейчас это делаю, заключается в том, что мне очень трудно вернуться и отредактировать форму позже так, как я это делаю сейчас.

Пожалуйста, примите к сведению любые вопросы, которые у вас могут возникнуть, о том, как я задал свой вопрос в комментариях, или, если есть что-то, что мне нужно, чтобы было немного яснее.

0 ответов

Другие вопросы по тегам