0

我有一个导航菜单,其中的链接结构如下:

<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并尝试访问不同的父级链接,例如/TransmissionProductsIsuzuEngines在链接上,导致页面无法找到。

所需网址:/TransmissionProducts

实际网址:/TransmissionProducts/IsuzuEngines

有一堆覆盖Html.ActionLink,虽然我看着它们,但我没有看到一组看起来更好的不同参数。

4

1 回答 1

0

当您的父链接构造如下时:

@Html.ActionLink("Engine Products", null, "EngineProducts", null, null)

将使用之前的请求值,action因为您null在构建链接时提供。您应该明确指定在请求父链接时将使用的操作。

于 2013-09-11T02:02:02.660 回答