두 모델을 동시에 업데이트하려고합니다.ASP.NET MVC 5에서 여러 모델을 동시에 업데이트하는 방법 Entity Framework
모델 :
- 페이지
한 페이지에 여러 필드가
public ActionResult Update(PageEditViewModel viewModel)
{
if (!ModelState.IsValid)
{
var page = _context.MenuPages.Single(s => s.Id == viewModel.mPage.Id);
var contentFields = _context.ContentFields.Where(c => c.MenuPageId == page.Id);
var viewM = new PageEditViewModel
{
DashboardHeading = "Edit a Page",
mPage = page,
ContentFields = contentFields
};
return View("EditPage", viewM);
}
var pageEdit = _context.MenuPages.SingleOrDefault(p => p.Id == viewModel.mPage.Id);
pageEdit.Name = viewModel.mPage.Name;
pageEdit.IsActive = viewModel.mPage.IsActive;
pageEdit.IsShowInMenu = viewModel.mPage.IsShowInMenu;
// _context.SaveChanges();
foreach (var field in viewModel.ContentFields)
{
var cfield = _context.ContentFields.SingleOrDefault(f => f.Id == field.Id);
cfield.Content = field.Content;
}
_context.SaveChanges();
, 내가 페이지에 대한 데이터를 얻을 수 있지만 널 :
<div class="row">
<div class="col-md-12">
<h3>Fields</h3>
@foreach (var field in Model.ContentFields)
{
@Html.HiddenFor(m => field.Id)
switch (field.FieldType)
{
case "TextBox":
<div class="form-group">
<label class="control-label">
@field.FieldName<span class="required"> * </span>
</label>
@Html.TextBoxFor(m => field.Content , new { @class = "form-control" })
</div>
break;
case "TextArea":
<div class="form-group">
<label class="control-label">
@field.FieldName<span class="required"> * </span>
</label>
@Html.TextAreaFor(m => field.Content, new { @class = "form-control" })
</div>
break;
case "Image":
<div class="form-group">
<label class="control-label">
@field.FieldName<span class="required"> * </span>
</label>
<input type="file" name="contentImage" id="cImage" class="form-control" accept="image/*" />
</div>
break;
}
}
</div>
</div>
그리고 컨트롤러 : 여기
public class PageEditViewModel
{
public Page mPage { get; set; }
public IEnumerable<Field> Fields { get; set; }
}
내보기입니다 모델 (개체 참조가 인스턴스로 설정되지 않았습니다 ...). 회원들로부터 어떤 가이드가 오기를 고대하고 있습니다.
감사합니다. 데이터를 전송하는 동안
여기 질문의 매우 유사한 유형있다 : https://stackoverflow.com/questions/18237945/how-to-edit-save-viewmodels-data-back-to -database – jyrkim
@GertArnold 여기에 더 많은 코드를 추가하겠습니다. – Aleem
@GertArnold 질문을 좀 업데이트 해주세요. – Aleem