如何基于 MVC 中的控制器隐藏共享布局中的元素

How do I hide an element in the shared layout based on the controller in MVC

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

这是我的 bootstrap 导航栏。

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

例如:

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

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

共享布局可以检查当前路由和相应的行为。

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

更多信息:

  • Passing data to Master Page in ASP.NET MVC
  • Get Current View's Url with HtmlHelper in ASP.NET MVC 3
  • How to show/hide an area within Razor View in ASP.NET MVC programmatically