簡體   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