0

我的意思是:我有一个布局页面,根据调用的操作显示不同的图标。所以我在布局中有一些代码,如下所示:

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

AmbientPage变量是在Index操作中设置的全局值,由布局文件读取,布局文件会动态写入所请求页面的图标文件名。这对我来说似乎真的很笨拙,但我也没有看到解决它的好方法。

当 Layout 页面需要知道 action 中发生的事情时,你会怎么做?

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 回答