我有一个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