【问题标题】:Custom Hide Sidemap MVC自定义隐藏站点地图 MVC
【发布时间】:2017-10-24 22:03:11
【问题描述】:

我正在使用具有站点地图的引导模板。如何从控制器隐藏站点地图中的节点。 这是 My MvcSiteMap 的示例。我想通过控制器中的条件隐藏 SamplePage 节点。

<mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode>
<mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode>
<mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info">
  <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode>
</mvcSiteMapNode>

【问题讨论】:

标签: c# asp.net-mvc twitter-bootstrap model-view-controller mvcsitemapprovider


【解决方案1】:

如果您想在控制器中按条件隐藏它,您只能通过这种方式实现它,您可能应该在从控制器返回的对象中创建一个属性,并且可以调用该属性,例如:

public static bool HideSamplePage {get; set;}

接下来你可能会对你的 View 做些什么(我希望你知道 Razor 代码块包含在 @{ ... } 中)

@if(Model.HideSamplePage)
{
<mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode>
    <mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode>
    <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode>
</mvcSiteMapNode>
}
else
{
  <mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode>
    <mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode>
    <mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info">
    <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode>
</mvcSiteMapNode>
}

在上面的代码中,我说过如果将属性 HideSamplePage 的状态设置为 true, 然后&lt;mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info"&gt; 不会显示/生成。

否则 也显示SamplePage

【讨论】:

  • 如何在 MvcSiteMapNode 中创建条件?因为文件是 XML 格式的?
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多