繁体   English   中英

ASP.NET,MVC,C#应用程序-为不同的视图修改_Layout.cshtml

[英]ASP.NET, MVC, C# application - modify _Layout.cshtml for different Views

我有一个使用_Layout.cshtml文件的ASP.NET,MVC,C#应用程序。 我想将_Layout.cshtml文件用于多个视图,但是根据要显示的视图,我想稍微改变_Layout.cshtml。

如在_Layout.cshtml中有类似的内容-

<div>I would like to say </div>

@if(View = "View1")
{
      <div>Hello!</div>
}
@else 
{
      <div>Goodbye!</div>
}
<div>Have a great day!</div>

有人可以告诉我该怎么做吗? 谢谢!

假设您不仅要更改简单的文本,还可以使用相应的部分。 例如,将其放在_Layout.cshtml

@RenderSection("mySection", required: true)

然后在您的每个视图中:

@section mySection
{
    <div>Hello!</div>
}

这是一个不错的博客,提供了更多信息。

通常,您想对照操作而不是视图来检查。 你想做这样的事情

@if(Html.ViewContext.RouteData.Values["Controller"] == "Home" && Html.ViewContext.RouteData.Values["Action"] == "Index") {
     <div>Hello!</div>
}else {
     <div>Goodbye!</div>
}

巧妙的解决方案:在视图中向ViewBag添加变量。 像这样:

@ViewBag.Foo="bar"

在定义渲染哪个视图之前。 并在此基础上进行布局。

尽管这不是最佳实践方法-我个人可能会选择不同的布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM