我正在尝试为一组动态创建动态模型,这些问题会动态地提取到我的应用中。
我想将输入类型设置为等于问题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中执行此操作的适当方法感到困惑?处理动态创建的问题的正确方法是什么?我可以使用我的模型轻松地将它们拉出来。但我不确定将它们存回模型的正确方法。
这里要求的是一个问题的屏幕抓取。