更新我的ViewModel

时间:2014-02-04 23:13:52

标签: asp.net-mvc

我有一个与此非常类似的ViewModel:

    public List<Question> Questions { get; set; }
    public List<QuestionAnswer> QuestionAnswers { get; set; }

我在Controller中填充列表,然后将ViewModel传递给View。一切都很好。但是,我的View是可更新的(读/写)。

我想知道这是实现这一目标的最佳方法吗?更新QuestionAnswers的最佳方法是什么?

我是否循环表单集合还是有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

生成你的剃刀视图:

@using (Html.BeginForm("MyPostAction", "MyController", FormMethod.Post))
{
        @for (int i = 0; i < Model.QuestionAnswers.Count; i++)
        {           
          @Html.TextBoxFor(m => m.QuestionAnswers[i].Answer)
        }
}

然后在MyPostAction中捕获提交的结果

[HttpPost]
public ActionResult MyPostAction(List<QuestionAnswer> QuestionAnswers)
{
     foreach (var questionAnswer in QuestionAnswers)
     {
           // Do your DB update here
     }

     return View();
}

如果您需要在同一帖子操作中同时更新问题和questionAnswer列表,则可以将两个列表集合作为参数传递。

答案 1 :(得分:0)

就最佳实践而言,我会说你有一个很好的方法,但在架构方面,你最好把答案集合放在问题本身。