次のような構造のリンクを含むナビゲーション メニューがあります。
<div class="childLinkGroup">
<div class="headerLink">@Html.ActionLink("Engine Products", null, "EngineProducts", null, null)</div>
<ul>
<li>@Html.ActionLink("Perkins Engines", "PerkinsEngines", "EngineProducts", null, null)</li>
<li>@Html.ActionLink("Isuzu Engines", "IsuzuEngines", "EngineProducts", null, null)</li>
<li>@Html.ActionLink("FPT PowerTrain", "FPTPowerTrain", "EngineProducts", null, null)</li>
<li>@Html.ActionLink("Mitsubishi Engines", "MitsubishiEngines", "EngineProducts", null, null)</li>
</ul>
</div>
そしてコントローラクラスでは:
// GET: /EngineProducts/
public ActionResult Index()
{
return View(ModelData);
}
//
// GET: /EngineProducts/PerkinsEngines
public ActionResult PerkinsEngines()
{
ModelData.MenuCategories.Where(x => x.Action == "PerkinsEngines").FirstOrDefault().Active = true;
return View("Perkins Engines", ModelData);
}
ホームページからアクセスすると、これらはすべて正常に機能します。
既に のような子ページにいて/EngineProducts/IsuzuEngines
、別の親レベルのリンクにアクセスしようとすると/TransmissionProducts
、IsuzuEngines
がリンクに残っているため、ページが見つかりません。
希望URL:/TransmissionProducts
実際の URL: /TransmissionProducts/IsuzuEngines
のオーバーライドがたくさんありHtml.ActionLink
、それらを調べてみると、見栄えの良い別のパラメーターのセットが表示されません。