如何从 ASP.NET MVC 中的数据库中删除对象?

Posted

技术标签:

【中文标题】如何从 ASP.NET MVC 中的数据库中删除对象?【英文标题】:How to delete a object from database in ASP.NET MVC? 【发布时间】:2021-05-29 17:46:51 【问题描述】:

我想使用 ASP.NET MVC 从我的数据库中删除一个对象。我已经使用实体框架连接到数据库。我为名为@9​​87654321@ 的控制器编写了这段代码。

// DELETE-POST
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Delete(int? id)

    var obj = _db.Project.Find(id);

    if(obj == null)
    
        return NotFound();
    

    _db.Project.Remove(obj);
    _db.SaveChanges();

    return RedirectToAction("Index");

然后我创建了一个按钮,其中包含指向我的控制器的链接

<a asp-action="Delete" class="btn btn-danger btn-lg text-white w-30">Delete</a>

我曾期望我的对象会消失。但是当我按下按钮时出现问题。它只返回一个空白站点,并显示该站点无法运行的消息。

有人知道为什么吗?

【问题讨论】:

【参考方案1】:

您必须将 Id 添加到您的 ancor 标签。尝试使用这个:

<a asp-controller="...Controller"   asp-action="Delete" 
       asp-route-id="@Model.Id" class="btn btn-danger btn-lg text-white w-30">
Delete</a>

【讨论】:

【参考方案2】:

您需要从视图中传递 id。

<a asp-action="Delete" asp-route-id="@Model.Id" class="btn btn-danger btn-lg text-white w-30">Delete</a>

【讨论】:

解决了问题!非常感谢!

以上是关于如何从 ASP.NET MVC 中的数据库中删除对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?

如何从 ASP.net MVC 程序中获取纯 c# 程序中的 JSON 数据?

如何对asp.net mvc 4中的select2字段进行强制字段验证

在asp.net mvc中删除数据成功后重新排序自动编号列JQuery Datatable

如何使用asp.net mvc删除jqgrid中的多个寄存器?

如何从 ASP.NET MVC 视图显示存储在数据库中的 HTML?