0
我爲我的web應用程序創建了2個模型 - 比方說模型A &模型B.我已經設法在單個視圖上顯示兩個模型的數據。我的問題是我只能編輯模型A.如何修改控制器中的編輯方法,以便我可以從同一視圖更新兩個模型?修改編輯方法以更新兩個模型
下面是視圖模型的控制器的編輯方法:
// GET: ABViewModel/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var modelA = await _context.ModelADetails
.Include(i => i.ModelBDetails)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.ID == id);
if (vendor == null)
{
return NotFound();
}
return View(modelA);
}
// POST: ABViewModel/Edit/5
[HttpPost, ActionName("Edit")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> EditPost(int? id)
{
if (id == null)
{
return NotFound();
}
var modelAToUpdate = await _context.ABViewModel
.Include(s => s.ModelBDetails)
.SingleOrDefaultAsync(s => s.ID == id);
if (await TryUpdateModelAsync<ModelA>(
vendorToUpdate,
"",
i => i.FirstName, i => i.LastName, i => i.PhoneNo, i => i.Email)
{
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException /* ex */)
{
//Log the error (uncomment ex variable name and write a log.)
ModelState.AddModelError("", "Unable to save changes. " +
"Try again, and if the problem persists, " +
"see your system administrator.");
}
return RedirectToAction("Index");
}
return View(modelAToUpdate);
}
這裏的視圖模型:
namespace WebAppProject.Models.ViewModels
{
public class ModelAandB
{
public IEnumerable<ModelA> ModelADetails { get; set; }
public IEnumerable<ModelB> ModelBDetails { get; set; }
}
}
如果每個模型都包含在其自己的'
@SamAxe你的意思是視圖模型?已經有一個 - 請看我更新的帖子。 ModelAandB包含兩個模型的屬性。 –