【问题标题】:How do I hide an element in the shared layout based on the controller in MVC如何根据 MVC 中的控制器隐藏共享布局中的元素
【发布时间】:2015-03-31 08:04:37
【问题描述】:

我的页面主页顶部有一个引导导航栏,里面是一个文本输入。我希望它隐藏起来,直到执行搜索并且用户在 results 控制器中看到结果。

这是在我的引导导航栏中。

<input type="text" class="form-control" placeholder="Search">

例如:

Hidden:  www.example.com/home/index
Visible: www.example.com/results

【问题讨论】:

  • 一种可能的选择是为ViewBag 赋值并根据其值包含/排除html - @if(ViewBag.CanDisplay) {..
  • 既然您的navbar 在主/布局页面上...为什么不检查那里的条件并相应地显示输入。
  • 如何检查母版页/布局上的条件?
  • 所以这与引导程序本身无关,问题是两部分。 1. 如何将信息从控制器传递到共享布局,2 如何根据属性切换元素的可见性。到目前为止,您对其中任何一个都做了什么尝试?
  • 我目前正在使用@if(ViewBag.CanDisplay) 隐藏数据

标签: javascript asp.net-mvc html twitter-bootstrap


【解决方案1】:

在这种情况下,您实际上不需要将任何特定信息从控制器传递到共享布局。

共享布局可以检查当前路线并做出相应的行为。

@if (ViewContext.RouteData.Values["Controller"].ToString() == "results")
{
    <input type="text" class="form-control" placeholder="Search">
}

更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 2021-08-31
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多