这是一个ASP.NET MVC项目,
ViewModel看起来像这样:
public class QuestionViewModel
{
public CheckListsQuestion CheckListsQuestion { get; set; } //this is EF entity
public string Points { get; set; }
}
该视图看起来有点像
@model System.Collections.Generic.List<WebCheckList.Models.QuestionViewModel>
@using (Html.BeginForm("Submit", "CheckList" ... )
{
foreach (var viewModel in Model)
{
<input type="hidden" name="[@counter].CheckListsQuestion.ID" value="@viewModel.CheckListsQuestion.ID" />
<input type="number" name="[@counter].Points" >
}
}
如果我试图让它像
那样<input type="hidden" name="[@counter].CheckListsQuestion" value="@viewModel.CheckListsQuestion" />
我最终得到一个null(当我点击提交按钮时)。如果我绑定到ID,那么我将CheckListsQuestion的所有字段都清空 - 只填充ID。 有没有办法将基于Id的数据库中的所有字段的值加载到实体中,还是有更好的方法来处理绑定?
答案 0 :(得分:0)
现在我最终得到.Attach(); .Reload();
这样的组合:
var question = questionViewModel.CheckListsQuestion;
_db.CheckListsQuestions.Attach(question);
_db.Entry(question).Reload();