2013-09-11 51 views
0

我有一個結構類似這樣鏈接導航菜單:Html.ActionLink行動掉隊

<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留導致無法找到頁面的鏈接不同的父級的鏈接。

所需的URL:/ TransmissionProducts

實際的URL:/ TransmissionProducts/IsuzuEngines

有用於Html.ActionLink一堆覆蓋的,雖然我看了,雖然他們,我沒有看到一組不同的PARAMS看起來更好。

+0

子動作假設返回部分視圖。你是否完整視圖? –

+0

在控制器中?讓我發佈一些更多的片段 –

+0

你的父鏈接是如何構建的?聽起來像一個路由值正在從先前的請求繼承; MVC有這種行爲。 – asymptoticFault

回答

0

當你的父母鏈接結構是這樣的:

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

action先前的請求值將被使用,因爲你正在構建的鏈接時,提供null。您應該明確指定在爲父鏈接提出請求時將使用的操作。

+0

嗯,所以要達到默認的「索引」行動,我應該通過「索引」作爲行動? –

+0

@AndrewWalters是的,我相信應該這樣做。 – asymptoticFault

+0

這樣做,謝謝! –