내 MVC4 응용 프로그램의 컨트롤러에 게시 작은 객관식 설문에서 값을 받고 힘든 시간을 보내고 있습니다 후 :MVC4 : (radiobuttonlist 포함) 뷰 모델이 비어 HttpPost
모델은 다음과 같습니다
https://gist.github.com/973482 : 은 "Enum_RadioButtonList"@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" />
}
는 여기에서 잡고 뷰입니다 :
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,
}
이 (일부 마크 업을 떠나)보기입니다. 그것은 (그들의 MVC 4 쉬운 방법이어야한다 그래도)를 radiobuttonlist에 열거 값을 표시하는 가장 좋은 방법처럼 보인다
컨트롤러는 다음과 같다
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.HiddenFor(model => model.Id)
이 양식과 함께 게시 될 수 있도록 또한 ID가 있어야 질문의 내부 콜렉션의 각 : 나는 양식을 보지 못했다
소스 HTML – Mediator
변화를 추가하세요'보기를 반환 ("EvaluationB", EVM)'에'보기를 반환 ("EvaluationB을 ", ev); –