asp.net 根据RenderBody()的内容添加/删除html标记

iezvtpos  于 2024-01-09  发布在  .NET
关注(0)|答案(2)|浏览(216)

在my _Layout.cshtml中:

<section class="container content-section text-center">
    @RenderBody()
</section>

字符串
我只想有“节”左右时,“身体”是不是主页。
我正在考虑检测网址,但很快意识到,我将有许多网址绑定到网站,这不是聪明的方法。
那么,我能做些什么来让“section” Package 器足够聪明,知道什么时候出现,什么时候不出现呢?

kcugc4gi

kcugc4gi1#

您可以检查哪个控制器当前正在执行其操作,并检查HomePage Controller:

@{
    var controllerName = ViewContext.RouteData.Values["controller"].ToString();
    var actionName = ViewContext.RouteData.Values["controller"].ToString();
}

@if(controllerName == "HomePage" && actionName == "yourActionName")
{

    @RenderBody()

}
else
{
<section class="container content-section text-center">
@RenderBody()
</section>
}

字符串

q7solyqu

q7solyqu2#

至于我,我不会使用条件。这是一种黑客,但不是解决方案。下次你需要改变的东西,你会添加越来越多的IF吗?
使用两个布局。

  • _LayoutWithSection.cshtml:*
// ...
 <section class="container content-section text-center">
     @RenderBody
 </section>
 // ...

字符串

  • _布局.cshtml:*
// ...
 @RenderBody
 // ...

  • Home/Index.cshtml:*
@{
    Layout = "~/Views/Shared/_LayoutWithSection.cshtml";
}
// ...

  • _ViewStart.cshtml:*
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
// ...

相关问题