0

つまり、呼び出されたアクションに応じて異なるファビコンを表示するレイアウト ページがあります。したがって、レイアウトには次のようなコードがあります。

<link href="/images/favicon/@(AmbientPage.ShortName).ico" type="image/ico" rel="icon" />

この変数は、アクションで設定され、要求されたページのアイコン ファイル名を動的に書き込むレイアウト ファイルによって読み取られるAmbientPageグローバル値です。Indexこれは私には本当に不器用に思えますが、それを回避する良い方法も見当たりません。

レイアウトページがアクションで起こったことを知る必要があるとき、あなたは何をしますか?

4

1 に答える 1

0

通常、レイアウトページにロジックが含まれないようにするために、子アクションまたはセクションを使用します。したがって、上記の場合、それを行う他の方法は、現在のページの名前を子アクションに渡し、子アクションに使用するアイコン/アクションを決定させることです。

次のようになります。

  @Html.Action("Icon", "Default", new { @ViewContext.RouteData["Action"] })

または、セクションを使用して、レイアウトページで次のコードを追加します

  //true since they all required to have an icon
    @RenderSection("Icon", true)  

それからあなたの見解ではあなたはただする

@section Icon{
     <link href="/images/favicon/currentpage.ico" type="image/ico" rel="icon" />
 }

個人的には、セクションアプローチを使用して、コードの相互依存性を低くすることをお勧めします。

于 2013-01-07T03:01:10.230 に答える