1

_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>

誰かがこれを行う方法を教えてもらえますか? ありがとう!

4

3 に答える 3

4

単純なテキスト以上のものを変更したい場合は、そのためにセクションを使用できます。たとえば、次のように入力し_Layout.cshtmlます。

@RenderSection("mySection", required: true)

次に、各ビューで:

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

ここには、より多くの情報が掲載された素敵なブログがあります。

于 2012-12-05T22:08:12.107 に答える
1

通常は、ビューではなくアクションに対してチェックする必要があります。あなたはこのようなことをしたいと思うでしょう

@if(Html.ViewContext.RouteData.Values["Controller"] == "Home" && Html.ViewContext.RouteData.Values["Action"] == "Index") {
     <div>Hello!</div>
}else {
     <div>Goodbye!</div>
}
于 2012-12-05T23:10:22.330 に答える
0

独創的な解決策: ビューで変数を ViewBag に追加します。そのようです:

@ViewBag.Foo="bar"

レンダリングするビューを定義する前。そして、それを元にレイアウトにifを作ります。

これはベストプラクティスのアプローチではありませんが、個人的にはおそらく別のレイアウトを使用するでしょう。

于 2012-12-05T22:05:14.723 に答える