[英]Not show data in razor mvc 5 ASP.Net
var query = from c in db.TblKaryawans
join o in db.TblKaryawanKeluargas on c.IDKaryawan equals o.IDKaryawan
select new { c.Nama, o.Hubungan};
ViewBag.karyawan = query;
return View();
視圖
@foreach (var item in ViewBag.karyawan)
{
<li>@item.Hubungan</li>
}
錯誤:
“對象”不包含“ Hubungan”的定義
ViewBag
是動態的,因此視圖對其枚舉的集合類型ViewBag
,因此不會出現此錯誤。 最好的方法是創建一個ViewModel並使用它代替anonymous types
,如下所示:
var query = from c in db.TblKaryawans
join o in db.TblKaryawanKeluargas on c.IDKaryawan equals o.IDKaryawan
select new MyViewModel { Nama = c.Nama, Hubungan = o.Hubungan};
ViewBag.karyawan = query;
然后,您可以在視圖中像這樣使用它:
@foreach (var item in (IEnumerable<MyViewModel>)ViewBag.karyawan)
{
<li>@item.Hubungan</li>
}
MyViewModel
看起來像這樣:
public class MyViewModel
{
public string Nama { get; set; }
public string Hubungan { get; set; }
}
建議不要使用ViewBag
,而建議使用IEnumerable<MyViewModel>
作為模型,以避免更改query
時出現運行時錯誤。 的定義MyViewModel
類將是相同@拉胡爾的回答 。 如下更改控制器方法
var query = from c in db.TblKaryawans
join o in db.TblKaryawanKeluargas on c.IDKaryawan equals o.IDKaryawan
select new MyViewModel { Nama = c.Nama, Hubungan = o.Hubungan};
return View(query);
然后確保您的視圖頂部有此語法
@model IEnumerable<MyViewModel>
並如下遍歷模型
@foreach (var item in Model)
{
<li>@item.Hubungan</li>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.