Asp.Net Mvc2 增删改查DEMO代码


由于Asp.Net MVC 2已经是一个比较旧的框架版本,且在现代Web开发中,很多项目已经迁移到更现代的框架如ASP.NET Core,但为了满足你的请求,我将提供一个基本的Asp.Net MVC 2环境下,使用Entity Framework进行CRUD(增删改查)操作的示例代码框架。

请注意,由于Asp.Net MVC 2的具体实现和现代的.NET框架有所不同,以下示例将侧重于概念性的代码结构和基本流程。

### 1. 实体模型(Entity)

首先,你需要定义一个实体模型,比如一个`Product`类。


public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

### 2. 数据上下文(DbContext)

在Entity Framework中,数据上下文用于管理数据库操作。但请注意,Asp.Net MVC 2默认可能不直接支持Entity Framework 4.x之后的版本,这里我假设你使用的是兼容的版本。


using System.Data.Entity;

public class MyDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    public MyDbContext() : base("name=YourConnectionString")
    {
    }
}

确保你的Web.config中有相应的数据库连接字符串。

### 3. 控制器(Controller)

创建一个控制器来处理HTTP请求,并实现CRUD操作。


using System.Linq;
using System.Web.Mvc;

public class ProductController : Controller
{
    private MyDbContext db = new MyDbContext();

    // 读取所有产品
    public ActionResult Index()
    {
        return View(db.Products.ToList());
    }

    // 读取特定产品
    public ActionResult Details(int id = 0)
    {
        Product product = db.Products.Find(id);
        if (product == null)
        {
            return HttpNotFound();
        }
        return View(product);
    }

    // 创建新产品
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "ProductID,Name,Price")] Product product)
    {
        if (ModelState.IsValid)
        {
            db.Products.Add(product);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(product);
    }

    // 编辑产品
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "ProductID,Name,Price")] Product product)
    {
        if (ModelState.IsValid)
        {
            db.Entry(product).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(product);
    }

    // 删除产品
    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(int id)
    {
        Product product = db.Products.Find(id);
        db.Products.Remove(product);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
}

### 4. 视图(Views)

对于每个Action,你还需要创建相应的视图(Razor视图)来显示数据和接受用户输入。由于篇幅限制,这里不展开具体视图的代码。

### 注意

- 以上代码是一个高度简化的示例,用于说明如何在Asp.Net MVC 2中实现CRUD操作。

- 实际项目中,你可能需要添加更多的错误处理、验证和安全性措施。

- 确保你的项目中已经包含了Entity Framework的适当版本,并且已经正确配置了数据库连接。

- 如果你正在使用较新的.NET框架版本,建议迁移到ASP.NET Core,因为它提供了更好的性能和更多的功能。