我是 C# 的初学者,我在代码中遇到问题,我使用 Edit 方法作为索引,所以我使用 AddAsync,但是当我运行代码时,它只是跳过该行,而且它没有保存。
这是编辑方法:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(int id, IEnumerable<ModelProfileTraceClass> model)
{
try
{
var selectedClasses = model.Where(m => m.IsSelected).ToList();
var obj = Mapper.Map<IEnumerable<ProfileTraceClass>>(selectedClasses);
foreach (var objs in obj)
{
await _appServiceProfileTraceClass.AddAsync(objs).ConfigureAwait(false);
}
return RedirectToAction("Index", "DB2ProfileTraceType", new { id = ViewBag.ProfileTraceTypeId });
}
catch (Exception ex)
{
ViewBag.ErrorMessage = ex.Message;
return View(model);
}
}
public async Task<ActionResult> Edit(int id)
{
// Usei ToList() para evitar o erro de execução
var profileTraceClassList = _appServiceProfileTraceClass.GetAll().ToList();
var traceClassList = _appServiceTraceClass.GetAll().ToList();
var traceClassData = (from traceClass in traceClassList
join profileTraceClass in profileTraceClassList
on traceClass.Id equals profileTraceClass.TraceClassId into traceClassesGroup
from profileTraceClass in traceClassesGroup.DefaultIfEmpty()
select new ModelProfileTraceClass
{
TraceClassId = traceClass.Id,
ProfileTraceId = id,
IsSelected = profileTraceClass != null && profileTraceClass.ProfileTraceId == id,
Description = traceClass.Description
}).ToList();
ViewBag.ProfileTraceTypeId = id;
return View(traceClassData);
}
您没有发布您的 _appServiceProfileTraceClass,但在 AddAsync 方法中,您是否有类似以下内容:await repo.SaveChangesAsync(); ?