首页 > 解决方案 > 如何在 MVC5 删除帖子中显示错误消息。已搜索但在删除上找不到任何内容

问题描述

我试图在尝试删除时捕获记录依赖错误以避免灰色死亡。以下工作但不显示错误。

使用 ModelState.AddModelError(string.Empty, "message") 在创建帖子中可以正常工作,但在删除帖子中则不行。

任何帮助,将不胜感激。

控制器的一部分

 // POST: Divisions/Delete/5
    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    [DbFunction]
    public async Task<IActionResult> DeleteConfirmed(string id)
    {
        try
        {
            var division = await _context.Division.FindAsync(id);
            _context.Division.Remove(division);
            await _context.SaveChangesAsync();
            return RedirectToAction(nameof(Index));
        }
        catch (DbUpdateException)
        {
            ModelState.AddModelError(string.Empty, "Cannot Delete. Associated Records Exist");
        }
        return RedirectToAction(nameof(Delete));
    }

部分删除视图

<form asp-action="Delete">
    <div asp-validation-summary="All" class="text-danger"></div>
    <input type="hidden" asp-for="Division1" />
    <input type="submit" value="Delete" class="btn btn-default" /> |
    <a asp-action="Index">Back to List</a>
</form>      

标签: asp.net-core-mvc

解决方案


如果添加 ModelState,则需要返回视图,而不是重定向。一旦你重定向,ModelState 就会丢失。

使用返回视图();

不返回 redirectToAction(nameof(Index)); 不返回视图(xxxxxxx);


推荐阅读