事前に助けてくれてありがとう。私はMVCに非常に慣れていません。現在、私は MVC 4 で作業しています。_viewstart で参照される次のレイアウトがあります (これは VB 構文であることに注意してください)。その中で、子アクションを使用して、xml ファイルに基づいてメニューをレンダリングしています。アプリを最初に実行したときは問題なく動作します。ただし、ページを更新したり、アプリ内の別の URL に移動するとすぐに、メニューが失われます。
<header>
<div class="content-wrapper">
<div class="float-left">
<p class="site-title">@Html.ActionLink("Logo Here", "Index", "Home")</p>
</div>
<div class="float-right">
<section id="login">
@Html.Partial("_LoginPartial")
</section>
<nav>
<ul id="menu">
@Html.Action("Menu", "_MenuBar")
</ul>
</nav>
</div>
</div>
</header>
部分的なビューは次のとおりです。
@ModelType IEnumerable(Of MenuItem)
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
@Code
For Each item In Model
@:<li>@Html.ActionLink(item.Name, item.Action, item.Controller)</li>
Next
End Code
そして、_layout から呼び出されるコントローラーで呼び出される子アクションは次のとおりです。
Public Class _MenuBarController
Inherits System.Web.Mvc.Controller
<ChildActionOnly>
Function Menu() As PartialViewResult
Dim filePath = Server.MapPath("~/bin/Conf/MenuData.xml")
Dim menuBar As List(Of MenuItem) = MenuResolution.GetStandardMenu(filePath)
Return PartialView("~/Views/Shared/_MenuBar.vbhtml", menuBar)
End Function
End Class