我正在尝试创建问题和答案页面。我在其中通过文本框添加问题,并希望添加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///////?
我无法添加选项框。我在模型中使用正确的方法还是应该改变一些东西?
或者我可以自定义该用户自己选择他想要添加的选项吗?
请建议?
答案 0 :(得分: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>
}
答案 1 :(得分:0)
当你说“选项框”时,我认为你的意思是单选按钮。如果是这样,那么你可以使用RadioButton Html助手,就像这样。
<div class="editor-field">
@foreach(var myValue in Model.AnswerOptions) {
@Html.RadioButton("NAME_OF_LIST_FOR_ANSWERS", myValue)
}
</div>
答案 2 :(得分:0)
您可能会考虑将AnswerOption实体添加到数据模型中,以便定义每个问题有多少个选项。
然后你可以做类似
的事情foreach(var option in model.options){
@Html.EditorFor(option);
@Html.ValidationMessageFor(option);
}