VB.net 通过 MVC 站点中的 ViewBag 传递网格模板区域和网格模板列值



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

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

我尝试的是使用 viewBag 参数将网格模板区域字符串('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;;

因此,看起来单引号似乎被呈现为 '。

提前感谢,

泰 瑞

感谢这个答案:

Javascript,Razor和Esic字符。像撇号

基本上我不得不使用html.raw如下所示:

ViewBag.Areas = Html.Raw("'cap1 cap1' 'cap2 cap3' 'cap4 cap3'")

最新更新