You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Empty Razor Page中如何校验待删除tip article的ID是否存在?

问题修复方案

你的DeleteDb方法本身逻辑是正确的,执行DELETE语句后ExecuteNonQuery()会返回实际被删除的行数,当传入不存在的ID时返回值为0,方法会返回false。目前的问题是上层Razor页面的业务逻辑没有接收这个返回值,无论删除结果如何都直接输出成功提示,只要调整这部分逻辑即可:

具体修改步骤

修改DeleteTipArticleModel类的OnPost方法,接收删除操作的返回结果,根据结果设置对应提示:

[Authorize(Roles = "admin")]
public class DeleteTipArticleModel : PageModel
{
    [BindProperty]
    public int articleNumber { get; set; }

    public void OnGet()
    {
    }
    public IActionResult OnPost()
    {
        if (ModelState.IsValid)
        {
            TipArticleManager deleteToTipArticleDatabase = new TipArticleManager();
            // 接收删除操作的返回值
            bool isDeleteSuccess = deleteToTipArticleDatabase.DeleteTipArticle(articleNumber);
            if (isDeleteSuccess)
            {
                ViewData["Message"] = "Tip文章删除成功";
            }
            else
            {
                ViewData["Message"] = "删除失败:不存在对应ID的Tip文章,请检查输入的ID是否正确";
            }
            return Page();
        }
        else
        {
            ViewData["Message"] = "请填写所有必填字段";
            return Page();
        }
    }
}

可选优化建议

如果需要更精细的错误提示区分(比如区分「ID不存在」和「数据库操作异常」),可以将DeleteDb和DeleteTipArticle的返回值从布尔类型改为自定义枚举,分别对应删除成功、ID不存在、数据库异常三种状态,上层根据不同状态返回更精准的提示即可。

内容的提问来源于stack exchange,提问作者Jessy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:36:04