C# 在同一页上显示ASP.NET MVC 5中两个表中的数据

C# 在同一页上显示ASP.NET MVC 5中两个表中的数据,c#,asp.net,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc 5,我正在使用ASP.NET MVC和C#进行web开发。我想创建一个动态网站。我已经创建了一个包含2个表的数据库 产品(id、名称) 公司(id,desc) 我创建modelview以在同一页面中显示来自两个表的数据 public class HomeViewModel { public IEnumerable<Product> product { get; set; } public IEnumerable<Company> company { get

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

  • 产品(id、名称)
  • 公司(id,desc)
我创建modelview以在同一页面中显示来自两个表的数据

public class HomeViewModel
{
    public IEnumerable<Product> product { get; set; }
    public IEnumerable<Company> company { get; set; }
}
公共类HomeViewModel
{
公共IEnumerable乘积{get;set;}
公共IEnumerable公司{get;set;}
}
如何在同一主页上显示第一个产品(
id==1
)和所有公司


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

的视图模型如下:

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>
公共类产品
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公营公司
{
公共int Id{get;set;}
公共字符串Desc{get;set;}
}
公共类HomeViewModel
{
公共IEnumerable乘积{get;set;}
公共IEnumerable公司{get;set;}
}
第一个产品和所有公司的简单剃须刀标记可以如下所示:

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>
@model HomeViewModel
产品
身份证件
名称
@foreach(模型产品中的var项目,取(1))
{
@项目Id
@项目名称
}
公司
身份证件
描述
@foreach(模型公司中的var项目)
{
@项目Id
@项目说明
}

您尝试过什么?你的剃须刀视图是什么样子的?这似乎很直截了当。要获取第一个产品,可以使用类似于
@Model.product.FirstOrDefault()
的方法,并从该对象获取该产品的属性。要列出所有公司,您可以执行类似于
@foreach(Model.company中的var comp){…}
的操作。我有一种感觉,你想要与此不同的东西,但如果是这样的话,基于这个问题还不清楚。除此之外,你的财产应该是
产品
公司
,因为a)它们是集合(因此应该是复数),b)公共成员(因此应该是
PascalCase
).有成千上万的教程介绍了这一点。谷歌是你的朋友。