【问题标题】:Problem with Deleting element ASP.Net Core MVC删除元素 ASP.Net Core MVC 的问题
【发布时间】:2021-04-02 10:57:22
【问题描述】:

我尝试在我的 ASP.Net Core MVC 项目中使用依赖注入。

经过许多方法后,我都在努力完成删除操作。

从控制器管理操作:

public IActionResult Manage()
        {
            var categories = _categoryService.GetAll()
                .Select(c => new CategoryListingModel
                {
                    Id = c.Id,
                    Name = c.Title,
                    Description = c.Description
                });

            return View(categories);
        }

从控制器中删除操作:

public IActionResult Delete(int id)
        {
            var cat = _categoryService.GetById(id);

            if(cat == null)
            {
                ViewBag.ErrorMessage = $"Category with ID: {id} cannot be found";
                return View("NotFound");
            }
            else
            {
                _categoryService.Delete(id);

                return RedirectToAction("Manage");
            }
        }

从服务中删除方法:

public async Task Delete(int id)
        {
            var category = GetById(id);
            _context.Remove(category);
            await _context.SaveChangesAsync();
        }

删除确认类别列表后,只需刷新即可,无需任何更改。 为什么会这样?

【问题讨论】:

    标签: c# asp.net asp.net-core


    【解决方案1】:

    您似乎忘记等待_categoryService.Delete(id) 调用,并且在从存储库中删除类别之前呈现了管理页面。

    试试这个:

        public async Task<IActionResult> Delete(int id)
        {
            var cat = _categoryService.GetById(id);
        
            if(cat == null)
            {
                ViewBag.ErrorMessage = $"Category with ID: {id} cannot be found";
                return View("NotFound");
            }
            else
            {
                await _categoryService.Delete(id);
        
                return RedirectToAction("Manage");
            }
        }
    

    另外,请考虑在categoryService.Delete 方法名称中添加Async 后缀,以便其他开发人员更容易看到该方法应该等待。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多