我有一個很難從一個小的選擇題問卷發佈到控制器在我MVC4應用程序獲得的值:MVC4:視圖模型(與單選按鈕列表)爲空後HttpPost
這個模型看起來是這樣的:
public class Evaluation
{
public int Id { get; set; }
public IEnumerable<MultipleChoiceQuestion> Question { get; set; }
public Remark Rem { get; set; }
}
public class MultipleChoiceQuestion
{
public int Id { get; set; }
public string Question { get; set; }
public MultipleChoiceAnswer Answer { get; set; }
}
public enum MultipleChoiceAnswer
{
DISAGREE,
NEUTRAL,
AGREE,
NA,
}
這是視圖(留出一些標記):
@model Models.Evaluation
@using (Html.BeginForm("EvaluationB", "Evaluation", FormMethod.Post))
{
@foreach (var item in Model.Question)
{
@Html.DisplayFor(model => item.Question)
@Html.EditorFor(model => item.Question, "Enum_RadioButtonList", new { Id = item.Id })
}
@Html.Label("Remark")
@Html.TextAreaFor(model => model.Rem)
<input type="submit" value="Next" />
}
的 「Enum_RadioButtonList」 是一個視圖從這裏抓起:https://gist.github.com/973482。這似乎是最好的方式在一個單選按鈕列表顯示枚舉值(THO他們應該在MVC 4更簡單的方法)
的控制器是這樣的:
public ActionResult EvaluationA()
{
Models.Evaluation evm = new Models.Evaluation();
evm.Question = db.MultipleChoiceQuestions.ToList(); //feeding the View some predefined questions
return View(evm);
}
public ActionResult EvaluationB(Models.Evaluation ev)
{
if (ModelState.IsValid)
{
// TODO: save model
return View("EvaluationB", evm);
}
return View("EvaluationA", ev);
}
的問題在查看加載罰款,但由於某種原因,張貼到控制器的模型在HttpPost之後仍然是空的,我不明白爲什麼。
請添加源HTML – Mediator
變化'返回視圖(「EvaluationB」,EVM);'到'返回視圖(「EvaluationB 「,ev);' –