不在 Razor MVC 5 中显示数据 ASP.Net
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>
}
错误:
'object' does not contain a definition for 'Hubungan'
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; }
}
我建议使用 IEnumerable<MyViewModel>
作为模型,而不是使用 ViewBag
,以避免在更改 query
时出现 运行 时间错误。 MyViewModel
class 的定义与 中的定义相同。改变你的控制器方法如下
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>
}
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>
}
错误:
'object' does not contain a definition for 'Hubungan'
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; }
}
我建议使用 IEnumerable<MyViewModel>
作为模型,而不是使用 ViewBag
,以避免在更改 query
时出现 运行 时间错误。 MyViewModel
class 的定义与
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>
}