下面是一个使用ASP.NET MVC实现CRUD操作的示例,包括添加/删除类别和产品的功能。
首先,创建一个Category模型类,用于表示类别:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
接下来,创建一个Product模型类,用于表示产品:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int CategoryId { get; set; }
public Category Category { get; set; }
}
然后,创建一个DbContext类,用于与数据库交互:
public class ApplicationDbContext : DbContext
{
public DbSet Categories { get; set; }
public DbSet Products { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasOne(p => p.Category)
.WithMany(c => c.Products)
.HasForeignKey(p => p.CategoryId);
}
}
接下来,创建一个CategoryController,用于处理类别的CRUD操作:
public class CategoryController : Controller
{
private readonly ApplicationDbContext _context;
public CategoryController(ApplicationDbContext context)
{
_context = context;
}
public IActionResult Index()
{
var categories = _context.Categories.ToList();
return View(categories);
}
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(Category category)
{
if (ModelState.IsValid)
{
_context.Categories.Add(category);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(category);
}
public IActionResult Delete(int id)
{
var category = _context.Categories.Find(id);
if (category != null)
{
_context.Categories.Remove(category);
_context.SaveChanges();
}
return RedirectToAction("Index");
}
}
最后,创建一个ProductController,用于处理产品的CRUD操作:
public class ProductController : Controller
{
private readonly ApplicationDbContext _context;
public ProductController(ApplicationDbContext context)
{
_context = context;
}
public IActionResult Index()
{
var products = _context.Products.Include(p => p.Category).ToList();
return View(products);
}
public IActionResult Create()
{
ViewBag.Categories = _context.Categories.ToList();
return View();
}
[HttpPost]
public IActionResult Create(Product product)
{
if (ModelState.IsValid)
{
_context.Products.Add(product);
_context.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Categories = _context.Categories.ToList();
return View(product);
}
public IActionResult Delete(int id)
{
var product = _context.Products.Find(id);
if (product != null)
{
_context.Products.Remove(product);
_context.SaveChanges();
}
return RedirectToAction("Index");
}
}
在以上示例中,我们使用Entity Framework Core来处理数据库操作。在视图层面,你可以创建相应的视图文件来呈现数据和用户界面。
请注意,以上示例仅提供了基本的CRUD操作,你可以根据自己的需求进行扩展和修改。