c# - 在视图中显示来自不同表的数据
问题描述
只是想问一下我是否在这里错过了什么。无论如何,我有两个表,我使用.NET MVC btw 在我的控制器中连接在一起,这是我的控制器:
namespace Review.Controllers
{
public class ReviewController : Controller
{
ReviewContext db = new ReviewContext();
ReviewItemsContext db2 = new ReviewItemsContext();
MainDataModel db3 = new MainDataModel();
List<UAR_Review> uar_review = new List<UAR_Review>();
List<UAR_ReviewItems> uar_reviewitems = new List<UAR_ReviewItems>();
public ActionResult Index(int? page) {
ViewBag.AccList = (from r in db2.UAR_ReviewItems
select r.Account).Distinct();
/*var entities = from s in db2.UAR_ReviewItems
orderby s.Account
select s;*/
var entities = from s in uar_review
join st in uar_reviewitems on s.ID equals st.ReviewID into st2
from st in st2.DefaultIfEmpty()
select new MainDataModel { UAR_Review = s, UAR_ReviewItems = st };
int pageSize = 15;
int pageNumber = (page ?? 1);
return View(entities.ToPagedList(pageNumber, pageSize));
}
}
}
这是我的观点:
@model PagedList.IPagedList<Review.Models.MainDataModel>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "Review", FormMethod.Get))
{
<h2>Index</h2>
@section NavBar{
<h3>Period: 2 of 2018</h3>
@Html.DropDownList("userAccount", new SelectList(ViewBag.AccList), "Select Account to Filter")
<input type="submit" value="Search" />
}
@section MiddleSection{
<table class="table">
<tr>
<th>
<span class="arrow-link contrast-large light-blue">@Html.DisplayName("Name")</span>
</th>
<th>
<span class="arrow-link contrast-large light-blue">@Html.DisplayName("Role")</span>
</th>
<th>
<span class="arrow-link contrast-large light-blue">@Html.DisplayName("Action")</span>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
<span class="font-gotham-narrow">@item.UAR_Review.DisplayName</span>
</td>
<td>
<span class="font-gotham-narrow">@item.UAR_ReviewItems.Role</span>
</td>
<td>
@Html.HiddenFor(modelItem => item.UAR_ReviewItems.Response)
<span class="font-gotham-narrow">
@Html.RadioButton("Response", "Retain")@Html.Label("Retain") 
</span>
<span class="font-gotham-narrow">
@Html.RadioButton("Response", "Remove")@Html.Label("Remove")
</span>
</td>
</tr>
}
</table>
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
}
}
}
问题是,当我运行它时,站点中没有显示任何内容。这是页面。
我只是想问问有没有我遗漏的东西。另外,请忽略左侧的下拉列表,我一直计划使用它来按 AccountType 对页面中显示的元素进行排序(这存储在我的 UAR_ReviewItems 表中)。现在,我只是想弄清楚这里出了什么问题以及为什么没有显示任何元素。
解决方案
您的屏幕抓取确实显示 PageCount 为 0。您的模型为空。检查您的查询。
推荐阅读
- bash - 如何仅grep输出的第一个单词
- javascript - 未捕获的 ReferenceError:未定义自动计算
- java - 如何在 Java 的命令行中创建用户选择菜单?
- python - 数据砖社区版无法读取上传的表(之前工作)
- woocommerce - 如何通过删除“wc_”前缀来操作 WooCommerce 订单键?
- html - 媒体查询没有以不同的大小响应
- javascript - 网站构建器解析脚本时如何将javascript插入html页面
- arrays - Ruby - 更新散列数组的一个散列中的键/值会更新所有散列
- android - 使用音频播放器包时出现颤振错误
- java - 如何在 Spring Cloud Gateway GlobalFilter 中获取当前的 Trace ID