我有一個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. 啓用和禁用dojo菜單欄項
- 3. 在Qt中啓用/禁用菜單項
- 4. 啓用/禁用ActionBar菜單項
- 5. 在xcode中啓用/禁用菜單項
- 6. 禁用菜單項
- 7. 取決於listview項目禁用/啓用上下文菜單項
- 8. 基於下拉菜單選項啓用/禁用選項卡
- 9. 禁用Superfish菜單項
- 10. 禁用菜單項目
- 11. 插件 - 禁用菜單項?
- 12. UIDocumentInteractionController禁用選項菜單
- 13. 使用3ds max禁用/啓用四元菜單項目sdk
- 14. 禁用/啓用應用程序菜單項
- 15. 使用.setEnabled()啓用/禁用選項菜單按鈕?
- 16. 在_layout.cshtml中呈現動態菜單
- 17. 啓用選項文本選自/禁用下拉菜單
- 18. 根據切換狀態禁用/啓用工具欄菜單項
- 19. 安卓:啓用禁用上下文菜單項
- 20. 如何檢查菜單項被啓用爲禁用
- 21. 在Eclipse插件中啓用/禁用菜單項
- 22. 檢查值以禁用/啓用上下文菜單項(android)
- 23. RFT - 檢查菜單項是啓用還是禁用
- 24. 如何禁用和啓用Android上的菜單選項?
- 25. 'Embed Objects In'菜單項全部禁用。如何啓用?
- 26. 動態啓用或禁用上下文菜單項
- 27. 打印菜單項目啓用/禁用各種NSWindowControllers
- 28. 從另一個線程啓用/禁用菜單項
- 29. 子菜單中的菜單欄啓用禁用
- 30. 如何禁用單個菜單項?
是導航項目只有詳細信息頁面上是否有效?如果我回到索引頁面怎麼辦? – itsmatt