MVC使用linq多表链接查询的数据在视图页显示方法
经过一上午的研究终于成功找到解决办法
首先是Action代码
var menus = from a in dc.Menu
join b in dc.Category on a.CategoryId equals b.CategoryID
select new
{
a.MenuID,
a.Price,
a.Sales,
a.Shipping,
a.Store,
a.image,
a.Details,
a.MenuName,
b.CategoryName,
};
List<dynamic> oneList = new List<dynamic>();
foreach (var item in menus.ToList())
{
dynamic dyObj = new ExpandoObject();
//需要引用命名空间 using System.Dynamic
dyObj.MenuName = item.MenuName;
dyObj.CategoryName = item.CategoryName;
dyObj.MenuID = item.MenuID;
dyObj.Price = item.Price;
dyObj.Store = item.Store;
dyObj.Sales = item.Sales;
dyObj.Details = item.Details;
dyObj.image = item.image;
dyObj.Shipping = item.Shipping;
oneList.Add(dyObj);
}
ViewBag.data = oneList;
return View();
然后视图页的代码
<table class="table datatable_simple" id="assets-data-table">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>分类</th>
<th>价格</th>
<th>库存</th>
<th>运费</th>
<th>销量</th>
<th>详情</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tbody">
@foreach (var asset in ViewBag.data)
{
<tr>
<td>@asset.MenuID</td>
<td>@asset.MenuName</td>
<td>@asset.CategoryName</td>
<td>@asset.Price$</td>
<td>@asset.Store</td>
<td>@asset.Shipping</td>
<td>@asset.Sales</td>
<td>@asset.Details</td>
<td>
<a class="btn btn-primary" onclick="Update('@asset.MenuID')">编辑</a>
<a class="btn btn-primary" onclick="Delete('@asset.MenuID')">删除</a>
</td>
</tr>
}
</tbody>
</table>
运行结果