试图创建一个足够动态的模型来处理动态问题

时间:2014-02-14 21:36:18

标签: c# asp.net-mvc razor dynamic

我正在尝试为一组动态创建动态模型,这些问题会动态地提取到我的应用中。

我想将输入类型设置为等于问题ID(这是唯一的)。然后我想将这些答案与我的模型中的值字段相关联。

我有这个型号:

public class QuestionViewModel
    {
        public int? Id { get; set; }

        public string QuestionType { get; set; }

        public string Text { get; set; }

        public List<QuestionOptionViewModel> Options { get; set; }
    }
    public class QuestionOptionViewModel
        {
            public int? Id { get; set; }

            public string Text { get; set; }

            public string StringValue { get; set; }
            public bool OptionValue {get; set;}

        }

所以我试着像下面那样做一个texbox。我希望这将设置形式name =“id”,然后将值设置为我的模型属性StringValue。但它不起作用。

@for (int i = 0; i < @Model.Options.Count; i++)
{
    <div class="col-lg-4">
        <label for="@Model.Options[i].Text">@Model.Options[i].Text</label>
        @Html.TextBoxFor(o => Model.Options[i].StringValue, new { name = Model.Options[i].Id, @class = "form-control", placeholder = "" })
    </div>
}

让我带您了解伪代码风格给我的模型。它应该解释我想做什么。

QuestionViewModel
   int = 1
   questionType = Text
   Text = What is your name?
QuestionOptionViewModel
   int = 1
   Text = FirstName
   StringValue = *I want to set the response here*
   OptionValue = *If it was a radio I want to store bool here*

   int = 2
   Text = LastName
   StringValue = *I want to set the response here*
   OptionValue = *If it was a radio I want to store bool here*

所以我在模型中添加了StringValue部分。我想在那里捕获响应,因此我可以动态地跟踪这个问题输入框将具有QuestionOption int的名称。并将值存储在StringValue中(因为在此示例中为文本)。

我对在C#MVC中执行此操作的适当方法感到困惑?处理动态创建的问题的正确方法是什么?我可以使用我的模型轻松地将它们拉出来。但我不确定将它们存回模型的正确方法。

这里要求的是一个问题的屏幕抓取。 enter image description here

0 个答案:

没有答案