Il y a de fonction intégrée dans le faire MVC. D'une manière très simple, au fait. Il existe de nombreuses alternatives, jetez un oeil à this article by Phil Haack pour les inspecter tous. L'un d'entre eux est avec des dictionnaires. Quesion.Id sera la clé, réponse sera la valeur
Exemples:
En premier lieu, créer ViewModels appropriés
public class AnswerQuestionViewModel
{
public Quesion Question { get; set; }
public string Answer { get; set; }
}
public class Quesion //
{
public int Id { get; set; }
// Maybe some other properties.
}
intérieur ~/Views/Shared/EditorTemplates/
, créez éditeur qui rendra éditeur.
@model Models.AnswerQuestionViewModel
@Html.HiddenFor(model => model.Question.Id)
@Html.EditorFor(model => model.Answer)
Et ~/Views/ControllerName/ActionName.cshtml
@model IEnumerable<ControllerInspectorTest.Models.AnswerQuestionViewModel>
@using (Html.BeginForm())
{
@Html.EditorForModel();
<p>
<input type="submit" value="Create" />
</p>
}
Et lorsque vous créez une action post, le paramètre sera rempli
[HttpPost]
public ActionResult AnswerQuestions(IEnumerable<AnswerQuestionViewModel> quesions)
{
// questions parameter is filled in correctly
//do save job;
}
Notez que la question paramètre par type de IList
ou List
trop