在ASP.NET中處理樹形結構節點刪除的方法如下:
TreeNode
的類,包含Id
、Name
、ParentId
和Children
屬性。public class TreeNode
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public List<TreeNode> Children { get; set; }
public TreeNode()
{
Children = new List<TreeNode>();
}
}
Children
列表中移除,最后保存更改到數據庫。public void DeleteNode(int nodeId)
{
// 根據ID查找要刪除的節點
var nodeToRemove = _context.Nodes.Find(nodeId);
if (nodeToRemove == null)
{
throw new Exception("Node not found.");
}
// 如果節點是根節點,更新父節點的Children列表
if (nodeToRemove.ParentId == null)
{
var parentNode = _context.Nodes.Find(nodeToRemove.ParentId);
if (parentNode != null)
{
parentNode.Children.Remove(nodeToRemove);
_context.SaveChanges();
}
}
else
{
// 否則,找到要刪除節點的父節點,并將其從Children列表中移除
var parentNode = _context.Nodes.Find(nodeToRemove.ParentId);
if (parentNode != null)
{
parentNode.Children.Remove(nodeToRemove);
_context.SaveChanges();
}
}
}
DeleteNode
方法來刪除指定的節點。例如,你可以創建一個名為TreeController
的控制器,并在其中添加一個名為Delete
的Action方法。[HttpPost("delete")]
public IActionResult Delete(int nodeId)
{
try
{
_treeService.DeleteNode(nodeId);
return Ok();
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
/Tree/Delete
,并傳遞要刪除的節點的ID。這樣,當用戶刪除一個節點時,該節點將從樹形結構中移除,并且更改將保存到數據庫。