Ⅰ→通過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
