MVC/Razor 如何在我的视图中显示来自两个独立数据库的数据

How to display data from two seperate databases in my view in MVC/Razor

我有两个表 pagecontent 和 programs。我需要在主页视图中显示两个表中的数据。

这是我的 HomeController:

public class HomeController : Controller
{
    [HandleError]
    public ActionResult Index()
    {
        using (var dbContext = new webcastEntities())
        {


            pagecontent homepageText = dbContext.pagecontents.OrderByDescending(o => o.pageID).FirstOrDefault();

            IOrderedQueryable<programs_tbl> programList =
                dbContext.programs_tbl.Where(q => q.closed != "DEL").OrderBy(o => o.startDate);


            IQueryable<JoinedContent> results = dbContext.pagecontents
                .Join(dbContext.programs_tbl,
                    t1 => t1.pageID,
                    t2 => t2.ID,
                    (t1, t2) =>
                        new JoinedContent(t1, t2));

            return View(results.ToList());

        }
    }
}

这就是我的观点:

@using gcus.com.ViewModels.ContentHolders
@model IEnumerable<JoinedContent>
@{
ViewBag.Title = "Home";
}
<div class="col-md-6" style="border-right: 2px solid #c0c0c0;">
                        @foreach (JoinedContent item in @Model)
                        {
                            //@Html.Raw(item.Value1.content)
                            @Html.Raw(item.PageContent.pageText)
                        }
                    </div>

这是我的 class:

public class JoinedContent
{


        public pagecontent PageContent { get; set; }

        public programs_tbl ProgramsTable { get; set; }

        public JoinedContent(pagecontent pageContent, programs_tbl programsTable)
        {
            PageContent = pageContent;
            ProgramsTable = programsTable;
        }

}
}

我能够快速调试并确认我的数据正在进入变量,因此提取数据不是问题,但能够将数据发送到我的视图才是问题所在。它总是返回 null.... 请帮助!

您可以创建一个新的 class 对象,该对象具有两个对象的属性。然后您将创建它的一个实例,设置属性,并将其作为您的模型传递。或者您可以将每个对象放在 ViewBag 中并通过它访问它们。我会推荐第一个选项。

在 类 上使用 IEnumerable 函数,我 运行 两个查询并将它们组合成一个结果,然后将其添加到视图中,一切正常。