在MVC Razor的单个视图中显示来自同一数据库的多个表

时间:2015-08-06 09:47:55

标签: asp.net-mvc razor model-view-controller multiple-tables

我已经创建了我的数据库。

我的数据库“Categories”和“Contents”中有两个表。

我的“类别”表包含:Id, CategoryName。 我的“内容”表包含:Id, Link, Category

我希望在MVC Razor的单个视图中显示这两个表。

我要在每个视图中显示一个表,但是我无法在视图中显示两个表。有人可以一步一步教我如何做到这一点吗?

我不想显示硬编码的详细信息。

2 个答案:

答案 0 :(得分:3)

您可以创建一个ViewModel,如:

public class MyViewModel
{
  public List<Category> Categories {get; set;}
  public List<Content> Contents {get; set;}
}

使用Controller Action中的数据填充ViewModel:

public ActionResult Index()
{
  var vm = new MyViewModel();
  vm.Categories = db.GetCategories();
  vm.Contents = db.GetContents();
  return View(vm);
}

在相应的视图中:

@model MyApp.Models.MyViewModel

现在,您可以在视图中的任何位置使用@Model来遍历来自两个来源的数据。

答案 1 :(得分:0)

  1. 选择正确的强类型模型。 该模型将包含&#34;类别&#34;和&#34;内容&#34;的信息。

  2. 在视图中创建两个HTML表格 例如

  3. &#13;
    &#13;
    <div>
        <table>
          <thead>
            <tr> 
              <th>Column 1</th> <th>Column 2</th>  ...
            </tr>
          </thead>
        <tbody>
          @foreach( var category in Model.Categories )
          {
          <tr>
            <td>@category.detail1</td> <td>@category.detail2</td> ...
          </tr>
          }
        </tbody>
       </table>
    </div>
    &#13;
    &#13;
    &#13;

    您可以根据需要创建任意数量的这些内容。使用CSS引用外部<div>来设置样式并将表格放在屏幕上