ViewBag をキャストする必要があります。MenuList
と呼ばれるクラスまたはそれに似たクラスがあると思います。コードをこれに変更します
@foreach (var item in ViewBag.MenuList as List<HomeController.MenuList>)
{
<li class="ajax_link">
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
</li>
または、面倒な ViewBag を完全に捨てて、viewModel を優先すると、元の構文が期待どおりに機能します。つまり、次のようになります。
メニュー項目のリストを viewModel プロパティにする
public class MenuList
{
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
}
public class ViewModel
{
//...
public List<MenuList> MenuLists { get; set; }
}
ビューを厳密に入力する
@model MvcApplicationForTestingStuff.Controllers.HomeController.ViewModel
そして、あなたのアクションリンクはこの構文で動作します
<ul id="menu">
@foreach (var item in Model.MenuLists)
{
<li class="ajax_link">
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
</li>
<li>|</li>
}
</ul>