0

我正在尝试创建一个问答页面。我正在通过文本框添加一个问题,并希望添加 4 个文本框来获得答案选项。我正在使用这个模型。

public class Question
    {
        public virtual int ID { get; set; }
        public virtual QPad QPad { get; set; }
        [Display(Name = "Add Question")]
        public virtual string QuestionText { get; set; }        
        [Display(Name = "Add Options")]
        public virtual IList<string> AnswerOption { get; set; }
    }

但现在在 QuestionController 的创建操作视图中

我的控制器是:

[HttpPost]
        public ActionResult Index(int qId, Question ques )
        {
            if (ModelState.IsValid)
            {
                var QPads = _db.QPads.Single(r => r.ID == qId);
                QPads.Questions.Add(ques);
                _db.SaveChanges();
                return RedirectToAction("Index", "QPad");
            }
            else
            {
                return View(ques);
            }
        }

我想为问题文本和选项添加编辑器,我使用

<div class="editor-label">
            @Html.LabelFor(model => model.QuestionText)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.QuestionText)
            @Html.ValidationMessageFor(model => model.QuestionText)
        </div>
/// ?????What for  4 Options boxes///////?

我无法添加选项框。我是在模型中使用正确的方法还是应该改变一些东西?

或者我可以自定义该用户自己选择他想要添加多少选项?

请建议?

4

3 回答 3

1

如果始终允许使用添加四个选项,那么我可以尝试这样的事情。

<div class="editor-label">
  @Html.LabelFor(model => model.QuestionText)
</div>
<div class="editor-field">
  @Html.EditorFor(model => model.QuestionText)
   @Html.ValidationMessageFor(model => model.QuestionText)
</div>
@for(int i = 0; i < 4; i++)
{
  <div class="editor-field">
     @Html.EditorFor(model => model.AnswerOption[i])
     @Html.ValidationMessageFor(model => model.AnswerOption[i])
  </div>
}
于 2012-06-27T03:26:13.133 回答
0

当您说“选项框”时,我假设您的意思是单选按钮。如果是这样,那么您可以使用 RadioButton Html 帮助程序,就像这样。

<div class="editor-field">
    @foreach(var myValue in Model.AnswerOptions) {
        @Html.RadioButton("NAME_OF_LIST_FOR_ANSWERS", myValue)
    }
</div>
于 2012-06-27T04:29:48.700 回答
0

您可能会考虑将 AnswerOption 实体添加到您的数据模型中,这样您就可以定义每个问题有多少个选项。

然后你可以做类似的事情

foreach(var option in model.options){
 @Html.EditorFor(option);
 @Html.ValidationMessageFor(option);
}
于 2012-06-27T06:53:44.470 回答