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

时间:2015-01-15 19:24:21

标签: c# asp.net-mvc razor

我有两个表页面内容和程序。我需要在主页视图中显示两个表中的数据。

这是我的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>

这是我的班级:

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 ....请帮助!

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

在类上使用IEnumerable函数,我运行了两个查询并将它们组合在一个结果中,然后将其添加到视图中并且全部工作。