我有一个导航菜单,链接结构如下:
<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
,从而生成一个可以显示的页面找不到。
所需网址:/ TransmissionProducts
实际网址:/ TransmissionProducts / IsuzuEngines
Html.ActionLink
有一堆覆盖,虽然我看到它们,但我看不到一组看起来更好的不同的参数。
答案 0 :(得分:0)
当您的父链接构造如下:
@Html.ActionLink("Engine Products", null, "EngineProducts", null, null)
将使用action
的上一个请求值,因为您在构建链接时提供null
。您应该明确指定在为父链接发出请求时将使用的操作。