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

  • 相关阅读:
    [LeetCode] Search a 2D Matrix
    CCBPM中的消息机制,CCIM服务端安装说明
    程序基石系列之C++多态的前提条件
    汇编中常见的一些错误信息
    浏览器的CSS Hacks
    易学设计模式看书笔记(7)
    [易飞]简易制程日报-月报
    js thiskeyword
    时空-问题集锦(转载)
    Delphi 组件渐进开发浅谈(二)——双简合璧
  • 原文地址:https://www.cnblogs.com/love-zf/p/6522169.html
Copyright © 2011-2022 走看看