0
Webアプリケーション用に2つのモデルを作成しました。モデルA &モデルBとしましょう。両方のモデルのデータを1つのビューに表示することができました。私の問題はモデル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ビューモデルを意味しますか?すでに1つあります - 私の更新された投稿をご覧ください。 ModelAandBは両方のモデルのプロパティを格納します。 –