【发布时间】:2018-06-15 14:32:51
【问题描述】:
我遇到了一个我正在努力解决的问题。一些背景知识:用户可以在我的应用程序中选择应用程序使用的配色方案,这个选择存储在数据库中。
我想要做的是基于这个选择,在页面加载时,为用户所做的选择提供 CSS 文件。
我一直在尝试做的是通过在 _Layout.cshtml 页面中执行 AJAX 请求来检查用户的选择,并将适当的 CSS 附加到标题中。这是有效的,但不是很好,因为有一些延迟,而且它不是一个好的解决方案,因为有时元素的某些样式在 CSS 加载后不正确。
我想做的是在服务器端做这个检查,就像控制器中的普通视图一样(你知道布局页面缺少控制器,所以这就是我卡住的地方)。然后在 _Layout 视图中添加正确的 CSS。
亲爱的堆栈溢出者,你对我有什么建议可以实现吗?我的用户需要那种甜蜜甜蜜的黑暗主题。 ;)
提前致谢!
【问题讨论】:
-
是的,对于连接到控制器的普通视图,我会这样做,但由于布局视图缺少控制器,我不确定这是否可行?
-
在这方面就像 MVC5 AFAIK。布局的“控制器”实际上是使用该布局的视图的控制器操作。
-
但这是 .net CORE !这意味着您实际上可以在您的视图中注入模型......并且在您的
_Layout中。这可能是使用此功能的正确时机。您还可以使用 html 标签助手或组件来获得更简洁的语法,而不是使用这些肮脏的if我建议...(netcore 2 很棒,立即使用它!) -
非常感谢 Wndrr,您和 C# discord 频道的用户都提出了这个建议,所以我实现了它,它运行良好。由于克里斯蒂安在下面写了一个答案来解释我是如何做到的,因此我会将他的帖子标记为已接受的答案,但是你们都向我发送了正确的方向,对此我表示感谢! :)
标签: css asp.net-core