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

ASP.NET Core MVC中使用EF向视图传递两张无关联表的数据

在ASP.NET Core MVC中通过EF传递两张无关联表数据到视图

1. 创建实体类

对应数据库中的两张表,定义与表字段匹配的实体:

public class Product
{
    public int products_id { get; set; }
    public string products_name { get; set; }
}

public class Category
{
    public int categories_id { get; set; }
    public string categories_name { get; set; }
}

2. 配置DbContext

将两个实体注册到EF的DbContext中,让EF识别对应的数据库表:

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
    {
    }

    public DbSet<Product> products { get; set; }
    public DbSet<Category> categories { get; set; }
}

同时在Program.cs中注册DbContext(以SQL Server为例):

builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

3. 定义ViewModel

由于需要同时传递两个表的数据,创建ViewModel封装两个集合:

public class ProductCategoryViewModel
{
    public IEnumerable<Product> Products { get; set; }
    public IEnumerable<Category> Categories { get; set; }
}

4. 控制器查询并传递数据

在控制器中注入DbContext,查询两张表的全部数据,封装到ViewModel后传递给视图:

public class HomeController : Controller
{
    private readonly AppDbContext _context;

    public HomeController(AppDbContext context)
    {
        _context = context;
    }

    public IActionResult Index()
    {
        var viewModel = new ProductCategoryViewModel
        {
            Products = _context.products.ToList(),
            Categories = _context.categories.ToList()
        };

        return View(viewModel);
    }
}

5. 视图展示数据

在对应视图(如Index.cshtml)中指定ViewModel类型,遍历展示数据:

@model ProductCategoryViewModel

<h2>产品列表</h2>
<ul>
    @foreach (var product in Model.Products)
    {
        <li>@product.products_id - @product.products_name</li>
    }
</ul>

<h2>分类列表</h2>
<ul>
    @foreach (var category in Model.Categories)
    {
        <li>@category.categories_id - @category.categories_name</li>
    }
</ul>

内容的提问来源于stack exchange,提问作者محمد حسین مظفری

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:12:08