Web API 参数将动态构建的 table 值绑定到模型?

Web API parameter bind dynamically built table values to model?

假设您正在创建一个在线测试应用程序。它可以让您添加多项选择题。因此用户单击 "Add new test question" 并出现一个对话框。该对话框要求输入问题文本、可能答案列表和正确答案。结果是这样的:

    Which color has the letter "G" in it?
            A.  Blue
            B.  Red
    ---->   C.  Green
            D.  Yellow
            E.  Purple

每个新问题可能会有不同数量的选项。所以下一个问题可能是:

    Does NYC have 5 boroughs?
    --->    A.  Yes
            B.  No

我创建了一个对话框,允许用户在表单中动态构建这些问题(添加答案、指定正确的问题等)。无论如何创建一个模型和一个 Web API 可以在表单提交时无缝地参数绑定该结构?我在想一些疯狂的事情,比如如果我的表单中有一个 table 我可以以某种方式将它绑定到我的模型中的数组?可能不会那样工作,但正在寻找创意。

模型可能看起来像这样

public class Question {
    public string Text { get; set;}
    public IList<Answer> Answers { get; set;}
}

public class Answer {
    public string Label { get; set;}
    public string Text { get; set;}
    public bool IsCorrect { get; set;}
}

api 端点将收集这些以形成测试。

public class Test {
    public IList<Question> Questions { get; set; }
}

public class TestController : ApiController {
    [HttpPost]
    public IHttpActionResult Create(Test test) { ... }
}