将css的值从嵌套的Razor视图传递到Master视图

时间:2011-08-11 13:42:40

标签: asp.net-mvc asp.net-mvc-3 razor

我有一个“主”视图(_MasterLayout.cshtml)

这有一个Div,ID为“main”

<div id="main" class="xxx">
</div>

在从_MasterLayout.cshtml继承的视图中,我需要能够在此div中设置类的值(例如,将其设置为“product-page”)

我怎样才能做到这一点?

我考虑过使用ViewBag,它可以运行 -

ViewBag.MainDivCSS = "product-page";

然而,这是一个等待发生的拼写错误。

有没有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

如果您不必从子视图页面设置母版页类,那将是最好的。对我来说,如果这是关于嵌套部分的话,最好再添加一个div。

围绕整个孩子的观点
<div id="child" class="product-page">

rest of child view here

</div> 

你会得到

<div id="main">
    <div id="child" class="product-page">

    rest of child view here

    </div> 
</div>

但无论如何,如果你愿意,一个选择是通过js在子视图中的单个位置做到这一点

<script>
     $(function(){
          $('#mainc').addClass('product-page');
     });
</script>

我不喜欢强烈查看由视图模型承载并由控制器管理的特定数据,因此在这种情况下我更喜欢javascript方法。当然,你是对的,你不应该使用ViewBag