【问题标题】:Display multiple table from same database in single view in MVC Razor在 MVC Razor 的单个视图中显示来自同一数据库的多个表
【发布时间】:2015-08-06 09:47:54
【问题描述】:

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

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

我的“类别”表包括:Id, CategoryName。 我的“目录”表包括:Id, Link, Category

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

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

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

【问题讨论】:

  • 创建由这两个表中的字段组成的视图模型,并使用该模型进行渲染

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


【解决方案1】:

你可以像这样创建一个 ViewModel:

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

用控制器动作中的数据填充 ViewModel:

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

在你对应的视图中:

@model MyApp.Models.MyViewModel

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

【讨论】:

    【解决方案2】:
    1. 选择正确的强类型模型。 此模型将包含“类别”和“内容”详细信息。

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

    <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>

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多