VB.net通过MVC站点中的ViewBag传递grid-template-areas和grid-template-columns值

问题描述 投票:0回答:1

我有一个使用VB.net MVC 5的胚胎网站,在_layout页面我有我的主要结构(标题,导航,页脚等)。标签也在布局页面中,View页面中唯一的内容是body html。我正在使用网格来排列我的内容元素,我正在尝试弄清楚如何在每页的基础上设置网格模板区域和网格模板列值。目前,以下样式包含在布局页面中。

<style>
    .cc-grid {
        grid-template-columns: 50% 50%;
        grid-template-areas: 'cap1 cap1' 'cap2 cap3' 'cap4 cap3';

    }
</style>

我试过的是使用viewBag参数将grid-template-areas字符串('cap1 cap1''cap2 cap3''cap4 cap3')作为属性传递如下:

grid-template-areas: @ViewBag.Areas;

然后在实际内容中使用以下方法分配值:

@ViewBag.Areas = "'cap1 cap1' 'cap2 cap3' 'cap4 cap3'"

传递字符串的值(我通过将@ ViewBag.Areas放入进行测试

标签,它确实显示正确的字符串。它似乎是在CSS中呈现值的问题。

如果无法在CSS中使用ViewBag,那么在每页基础上设置此类样式属性与布局页面中的最佳方法是什么?

当我在Edge中检查页面时,它呈现为:

grid-template-areas: &#39;cap1 cap1&#39; &#39;cap2 cap3&#39; &#39;cap4 cap3&#39;;

所以看起来好像单引号被渲染为&#39。

提前致谢,

特里

css vb.net model-view-controller viewbag
1个回答
0
投票

感谢这个答案:

Javascript, Razor and Escape characters. Like apostrophe

基本上我不得不使用html.raw:

ViewBag.Areas = Html.Raw("'cap1 cap1' 'cap2 cap3' 'cap4 cap3'")
© www.soinside.com 2019 - 2024. All rights reserved.