Linq多表联合查询,在View中绑定数据
Ⅰ→通过ViewData传递数据,不过需要新建一个类(用来存)
NewClass(里面有表1的字段和表2的字段)
public class JoinTab1_2 { public int ID { get; set; } public string Name { get; set; } }
控制器中Action
public ActionResult Index() {using (DBEntities db = new DBEntities()) { var query = (from tab_1 in db.T_Tab1 join tab_2 in db.T_Tab2 on T_Tab1.TypeID equals T_Tab2.ID select new JoinTab1_2() { ID = tab_1.ID, Name = tab_2.Name }).ToList(); ViewData["query"] = query; return View(); } }
View中(可以直接在控制器中的Action直接右击→添加视图...然后类型选新建的这个,其它自定义吧)
<div class="table-responsive"> <table class="table" border="1"> <caption>测试</caption> <thead> <tr> <td> ID </td> <td> 类型名称 </td> <td> 操作 </td> </tr> </thead> <tbody>@foreach (var item in ViewData["query"] as IEnumerable<JoinInstrument>) { <tr> <td> @item.ID </td> <td> @item.Name </td> <td> <a class="btn" title="编辑" href="@Url.Action("GetInfo",new { id=@item.ID})">查看</a> <a class="btn" title="编辑" href="@Url.Action("Edit",new { id=@item.ID})">修改</a> <a class="btn" title="编辑" href="@Url.Action("Delete",new { id=@item.ID})">删除</a> </td> </tr> } </tbody> @*<tfoot> </tfoot>*@ </table> </div>
Ⅱ→通过return View(query);传递数据→会报错!!!
控制器中Action
public ActionResult Index() { using (DBEntities db = new DBEntities()) { var query = (from tab_1 in db.T_Tab1 join tab_2 in db.T_Tab2 on T_Tab1.TypeID equals T_Tab2.ID select new JoinTab1_2() { ID = tab_1.ID, Name = tab_2.Name }).ToList(); //ViewData["query"] = query; return View(query); } }
view中
<div class="table-responsive"> <table class="table" border="1"> <caption>测试</caption> <thead> <tr> <td> ID </td> <td> 类型名称 </td> <td> 操作 </td> </tr> </thead> <tbody>@foreach (var item in Model) { <tr> <td> @item.ID </td> <td> @item.Name </td> <td> <a class="btn" title="编辑" href="@Url.Action("GetInfo",new { id=@item.ID})">查看</a> <a class="btn" title="编辑" href="@Url.Action("Edit",new { id=@item.ID})">修改</a> <a class="btn" title="编辑" href="@Url.Action("Delete",new { id=@item.ID})">删除</a> </td> </tr> } </tbody> @*<tfoot> </tfoot>*@ </table> </div>
这样写会报错
我参考这篇文章也没搞出来
记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义
大神看到希望能指点一二...
x
x
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了