zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Jmeter非GUI、GUI模式压测生成测试报告
    测试轮播banner
    Jmeter如何监控服务器CPU、内存、i/o等资源
    java基础(三)
    用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)
    L2-011. 玩转二叉树
    L2-010. 排座位
    L2-008. 最长对称子串
    L2-009. 抢红包
    L2-006. 树的遍历
  • 原文地址:https://www.cnblogs.com/love-zf/p/6522169.html
Copyright © 2011-2022 走看看