我有一個MVC3 C#.Net項目。當我最初加載我的網站時,我想要路由到索引頁面,並在屏幕頂部禁用導航選項卡,直到做出選擇。選擇完成後,該網站將轉到詳細信息頁面。然後我想啓用導航菜單。我怎樣才能做到這一點?傳遞一個ViewBag?不知道MVC3 _Layout.cshtml ...禁用/啓用菜單項
回答
我找到了我的問題的答案。 @ CodeRush的答案很酷,我將在另一種情況下使用。但我喜歡下面的實施,以瞭解我的實際情況。在Object1Controller指數得到行動,我添加了下面的代碼:
ViewBag.Hidden = "hidden";
然後在細節得到行動,這是當點擊了索引視圖的鏈接稱爲動作,我添加以下代碼:
ViewBag.Hidden = "visible";
然後在_Layout.cshtml我添加以下代碼:
<li style="visibility: @ViewBag.Hidden">@Html.ActionLink("About", "About", "Home")</li>
這使得爲:
<li style="visibility: hidden"><a href="/Home/About">About</a></li>
或
<li style="visibility: visible"><a href="/Home/About">About</a></li>
在其他控制器,我並不需要設置ViewBag.Hidden性質,因爲默認的可見性屬性爲「可見」。對於其他控制器,該ViewSource顯示:
<li style="visibility: "><a href="/Home/About">About</a></li>
這使得可見光
我認爲問題是索引頁不遵循網站其餘部分的佈局,因此索引頁不應該使用主佈局。
在你的索引頁:
@{
ViewBag.Title = "Index page";
// Null or a custom layout
Layout = null;
}
<p>Your content below</p>
如果你想呈現一些條件的菜單,然後存放在局部視圖模式菜單,例如SiteNavigation.cshtml
然後,您可以根據某些條件渲染此視圖。例如。
@if(true){
@{ Html.RenderPartial("SiteNavigation"); }
}
@CodeRush ....很酷的想法。我喜歡部分渲染。我不知道這是可用的。我也想出了一個解決方案。見下文。謝謝 – MikeTWebb
我認爲這是很多人的問題(包括我自己)。他們不知道有多少工具可以使用。 – 2011-10-11 16:39:48
- 1. 啓用/禁用菜單項
- 2. 基於下拉菜單選項啓用/禁用選項卡
- 3. 插件 - 禁用菜單項?
- 4. 使用3ds max禁用/啓用四元菜單項目sdk
- 5. 禁用/啓用應用程序菜單項
- 6. 在_layout.cshtml中呈現動態菜單
- 7. 啓用選項文本選自/禁用下拉菜單
- 8. 安卓:啓用禁用上下文菜單項
- 9. 動態啓用或禁用上下文菜單項
- 10. 從另一個線程啓用/禁用菜單項
- 11. 打印菜單項目啓用/禁用各種NSWindowControllers
- 12. 在Eclipse插件中啓用/禁用菜單項
- 13. 'Embed Objects In'菜單項全部禁用。如何啓用?
- 14. 檢查值以禁用/啓用上下文菜單項(android)
- 15. 如何禁用單個菜單項?
- 16. Request.QueryString在MVC3的_Layout.cshtml中不起作用
- 17. RCP e4基於其他菜單項禁用菜單項
- 18. 如何禁用單擊父菜單項而不禁用它?
- 19. MVC3如何禁用/啓用ActionLink
- 20. 單擊菜單項後禁用菜單關閉/隱藏
- 21. 啓用和登錄表單的MdiParent的禁用菜單項在c#
- 22. EXT js按鈕菜單項禁用
- 23. 禁用XCode'Build and Archive'菜單項
- 24. Android操作欄 - 禁用選項菜單
- 25. Dynamics CRM 2011禁用寶石菜單項
- 26. 如何禁用ContextMenuStrip中的菜單項?
- 27. 無法禁用電子菜單項
- 28. 禁用Angular uib-dropdown中的菜單項
- 29. 禁用Flash菜單
- 30. jquery上下文菜單禁用菜單項
是導航項目只有詳細信息頁面上是否有效?如果我回到索引頁面怎麼辦? – itsmatt