2012-06-27 51 views
0

我想創建一個問題和答案頁。我在其中通過文本框添加問題,並希望添加4個文本框以獲取答案選項。我正在使用這個模型。如何添加的IList <>在ASP.NET MVC模式嗎?

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///////? 

我無法添加選項框。我在模型中使用正確的方法還是應該改變一些東西?

或者我可以自定義用戶自己選擇他想要多少選擇補充?

請建議?

回答

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> 
} 
+0

我厭倦了這樣的一個,但與IList <>項目保存任何地方......雖然它的工作,但不保存任何地方。問題(ID,QuestionText,QPad_ID)的數據庫表...那麼在數據庫中IList <>項目呢? – Man8Blue

+0

您可以將控制器操作發佈到您要保存的位置嗎? – VJAI

+0

行動 – Man8Blue

0

當你說「選項框」時,我假設你指的是單選按鈕。如果是這樣,那麼你可以使用RadioButton Html助手,就像這樣。

<div class="editor-field"> 
    @foreach(var myValue in Model.AnswerOptions) { 
     @Html.RadioButton("NAME_OF_LIST_FOR_ANSWERS", myValue) 
    } 
</div> 
0

您可能會考慮將一個AnswerOption實體添加到您的數據模型中,以便您可以定義每個問題有多少個選項。

然後,你可以做這樣的事情

foreach(var option in model.options){ 
@Html.EditorFor(option); 
@Html.ValidationMessageFor(option); 
} 
+0

它不是選項框(單選按鈕)的文本框剛剛更新控制器 – Man8Blue

相關問題