【问题标题】:Display data from 2 tables in ASP.NET MVC 5 on the same page在同一页面上显示来自 ASP.NET MVC 5 中 2 个表的数据
【发布时间】:2021-07-30 13:11:47
【问题描述】:

我正在使用带有 C# 的 ASP.NET MVC 进行 Web 开发。我想创建一个动态网站。我创建了一个包含 2 个表的数据库 DATABASE

  • 产品(ID、名称)
  • 公司(id、desc)

我创建模型视图以在同一页面中显示两个表中的数据

public class HomeViewModel
{
    public IEnumerable<Product> product { get; set; }
    public IEnumerable<Company> company { get; set; }
}

如何在同一主页上显示第一个产品 (id==1) 和所有公司?

注意:我使用 ASP.NET MVC 和 C#(不是 ASP.NET Core MVC)

【问题讨论】:

  • 你试过什么?你的 Razor 视图是什么样的?这似乎很简单。要获得第一个产品,您可以使用 @Model.product.FirstOrDefault() 之类的东西并从该对象中获取该产品的属性。要列出所有公司,您可以执行@foreach(var comp in Model.company) { … } 之类的操作。我有一种感觉,你想要一些与此不同的东西,但如果是这样,根据问题并不清楚。
  • 除此之外,您的属性应该是ProductsCompanies,因为a)它们是集合(因此应该是复数),b)公共成员(因此应该是PascalCase)。
  • 有数以千计的教程涵盖了这一点。 Google 是您的朋友。

标签: c# asp.net asp.net-mvc-5


【解决方案1】:

使用这样的视图模型:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Company
{
    public int Id { get; set; }
    public string Desc { get; set; }
}

public class HomeViewModel
{
    public IEnumerable<Product> Products { get; set; }
    public IEnumerable<Company> Companies { get; set; }
}

第一个产品的简单剃须刀标记,所有公司都可以是这样的:

@model HomeViewModel

<h1>Products</h1>
<table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Products.Take(1))
        {
            <tr>
                <td>@item.Id</td>
                <td>@item.Name</td>
            </tr>
        }
    </tbody>
</table>

<h1>Companies</h1>
<table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Desc</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Companies)
        {
            <tr>
                <td>@item.Id</td>
                <td>@item.Desc</td>
            </tr>
        }
    </tbody>
</table>

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多