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

使用が常に4つのオプションを追加することを許可されている場合、私はこのようなことを試みるかもしれません。

<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

あなたが「オプションボックス」と言うとき、私はあなたがラジオボタンを意味すると思います。その場合は、RadioButtonHtmlヘルパーを使用できます。

<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 に答える