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 函数,我 运行 两个查询并将它们组合成一个结果,然后将其添加到视图中,一切正常。
我有两个表 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 函数,我 运行 两个查询并将它们组合成一个结果,然后将其添加到视图中,一切正常。