0
我試圖使用ViewBag.Unions傳遞數據。我在控制器中獲取數據,但是當我在視圖中foreach循環時,它說'對象'不包含'CountryName'的定義。我從控制器和視圖中提供完整的代碼。我無法解決這個問題。'object'不包含'CountryName'的定義
控制器
public ActionResult Index()
{
List<Country> listCountry = _db.Countries.ToList();
ViewBag.Countries = listCountry;
ViewBag.Unions = (from unon in _db.Unions
join upz in _db.Upazilas on unon.UpazilaId equals upz.UpazilaId
join dic in _db.Districts on upz.DistrictId equals dic.DistrictId
join div in _db.Divisions on dic.DivisionId equals div.DivisionId
join con in _db.Countries on div.CountryId equals con.CountryId
select new
{
con.CountryName,
div.DivisionName,
dic.DistrictName,
upz.UpazilaName,
unon.UnionName
}).ToList();
return View();
}
查看
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table class="">
<thead>
<tr>
<td>Country</td>
<td>Division</td>
<td>District</td>
<td>Upazila</td>
<td>Union</td>
</tr>
</thead>
<tbody>
@if (ViewBag.Unions != null)
{
foreach (var un in ViewBag.Unions)
{
<tr>
<td>@un.CountryName </td>
<td>@un.DivisionName</td>
<td>@un.DistrictName</td>
<td>@un.UpazilaName</td>
<td>@un.UnionName</td>
</tr>
}
}
</tbody>
</table>
你的答案是正確的。但我想在ViewBag中使用匿名對象來傳遞數據控制器來查看。 –
是的,你可以使用視圖袋來傳遞數據(與你在原來的職位做了什麼)。你需要轉換ViewBag字典項列出MyViewModel的,這將讓你的智能感知的那些屬性名稱。 – Shyju